Pandas DataFrame DataFrame.to_csv() 函式

Minahil Noor 2023年1月30日 2020年11月7日
  1. pandas.DataFrame.to_csv() 語法
  2. 示例程式碼:DataFrame.to_csv()
  3. 示例程式碼:DataFrame.to_csv() 為 CSV 資料指定分隔符
  4. 示例程式碼:DataFrame.to_csv() 選擇少數幾列並重新命名列
Pandas DataFrame DataFrame.to_csv() 函式

Python Pandas DataFrame.to_csv() 函式將一個 DataFrame 的行和列所包含的值儲存到一個 CSV 檔案中。我們也可以將 DataFrame 轉換為 CSV 字串。

pandas.DataFrame.to_csv() 語法

DataFrame.to_csv(path_or_buf= None,
                 sep= ",",
                 na_rep= "",
                 float_format= None,
                 columns= None,
                 header= True,
                 index= True,
                 index_label= None,
                 mode= "w",
                 encoding= None,
                 compression= "infer",
                 quoting= None,
                 quotechar= '""',
                 line_terminator= None,
                 chunksize= None,
                 date_format= None,
                 doublequote= True,
                 escapechar= None,
                 decimal= "."
                 ) 

引數

這個函式有幾個引數。上面提到了所有引數的預設值。

path_or_buf 它是一個字串或檔案控制代碼。它代表一個檔案或一個檔案物件的名稱。如果它的值是 None,那麼 DataFrame 將被轉換為 CSV “string”。
sep 它是一 Series 個字串。它代表 CSV 檔案中使用的分隔符。
na_rep 它是一個字串。它代表缺失的資料。
float_format 它是一個字串。它表示浮點數的格式。
columns 它是一個 Series。它表示將儲存在 CSV 檔案中的 DataFrame 的列。
header 它是一個布林值或一個字串列表。如果它的值被設定為 False,那麼列名就不會儲存在 CSV 檔案中。如果傳遞一個字串列表,那麼這些字串將作為列名儲存。
index 它是一個布林值,如果它的值是 True,則儲存行名,即索引。如果它的值為 True,那麼行名即索引將被儲存。
index_label 它是一個字串或 Series。它代表一個特定索引的列名。
mode 它是一個字串。它代表程序的模式。由於我們正在將 DataFrame 寫入 CSV 檔案,它的值是 Python 寫入模式 w
encoding 它是一個字串。它代表 CSV 檔案中要使用的編碼方案,預設的編碼方案是 utf-8。預設的編碼方案是 utf-8
compression 它是一個字串或字典。如果是字串,則代表壓縮模式。如果它是一個字典,那麼 method 鍵對應的值代表壓縮模式。它有幾種壓縮模式。你可以檢視這裡
quoting 它代表一個 CSV 模組的常量
quotechar 它是一個字串,長度為 1。它的長度為 1,表示用於引用欄位的字元。
line_terminator 它是一個字串。它代表 CSV 檔案中新行的字元。
chunksize 它是一個整數。它表示每次要寫入 CSV 檔案的行數。
date_format 它是一個字串。它代表 DateTime 物件的格式。
doublequote 它是一個布林值。它控制 quotechar 的引用。
escapechar 它是一個字串,長度為 1。它的長度為 1,代表用於轉義的 sepquotechar 的字元。
decimal 它是一個字串。它代表小數點的字元。

返回值

它返回 None 或字串。如果 path_or_bufNone,那麼它將 DataFrame 轉換為字串並返回字串。否則,它返回 None

示例程式碼:DataFrame.to_csv()

在接下來的幾個程式碼中,我們將以不同的方式實現這個函式。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

print(dataframe)

示例 DataFrame 是:

   Attendance    Name  Obtained Marks
0          60  Olivia              90
1         100    John              75
2          80   Laura              82
3          78     Ben              64
4          95   Kevin              45

這個函式的所有引數都是可選的。如果我們在執行這個函式時不傳遞任何引數,那麼它將產生以下輸出。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

csvstring = dataframe.to_csv()
print(csvstring)

輸出:

,Attendance,Name,Obtained Marks
0,60,Olivia,90
1,100,John,75
2,80,Laura,82
3,78,Ben,64
4,95,Kevin,45

該函式使用所有預設值生成了輸出。它返回了一個 CSV 字串。現在我們將把資料儲存在 CSV 檔案中。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

returnValue = dataframe.to_csv('myfile.csv')
print(returnValue)

輸出:

None

函式在儲存程式的目錄下建立了一個新的 CSV 檔案。

示例程式碼:DataFrame.to_csv() 為 CSV 資料指定分隔符

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

returnValue = dataframe.to_csv(sep= '@')
print(returnValue)

輸出:

@Attendance@Name@Obtained Marks

0@60@Olivia@90

1@100@John@75

2@80@Laura@82

3@78@Ben@64

4@95@Kevin@45

示例程式碼:DataFrame.to_csv() 選擇少數幾列並重新命名列

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

returnValue = dataframe.to_csv(
                                'myfile.csv', 
                                columns=['Name', 'Obtained Marks'], 
                                header=['Full Name', 'Marks'])
print(returnValue)

輸出:

None

Pandas DataFrame to_csv.png

就像上面的程式碼一樣,我們可以使用不同的引數來定製我們的 CSV 檔案。這個函式提供了幾個引數來使用。

相關文章 - Pandas DataFrame