Pandas dataframe到CSV
在本教程中,我们将看到如何将DataFrame保存到Python Pandas中的CSV文件。
我们可以使用 DataFrame.to_csv()
将DataFrame保存到CSV文件。
我们将看到将Dataframe写入CSV文件的各种选项。
dataframe.to_csv()的语法
def to_csv( self, 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:
我们想要编写CSV文件,包括文件名的路径。
如果我们未通过此参数,那么它将返回字符串。 sep:
从输出文件的字段界定器。
默认值为 ,
na_rep:
缺少数据表示。 float_format:
要格式化浮点数,可以使用此参数。 columns:
要写入CSV文件的列。 header:
写出列名称。 index:
要避免索引(行号码)列,我们可以通过 index=False
index_label
索引列的列标签。
在举例的帮助下,我们将看到一些重要属性的意义。
DataFrame示例数据
以下是将写入CSV文件的示例数据。
|名称|年龄|性别|
| --- - | --- | - - |
|玛丽| 36 |女性|
|约翰| 29 |男性|
|马丁| 31 |男性|
将Pandas DataFrame转换为CSV
以下是将DataFrame写入CSV文件的步骤。
- 使用Import语句导入Pandas模块
import pandas as pd
- 根据上述示例数据创建Dataframe。
emp_df = pd.DataFrame({ 'Name': ['Mary','John','Martin'], 'Age': [36,29,31], 'Gender':['Female','Male','Male'] }) print(emp_df)
- 决定要保存文件并将其传递给to_csv函数的路径。
我们可以指定相对路径或者绝对路径。
相对路径:
emp_df.to_csv('Employees.csv')
绝对路径:
emp_df.to_csv('/users/apple/Employees.csv')
以下是保存CSV文件的完整Python程序。
import pandas as pd emp_df = pd.DataFrame({ 'Name': ['Mary','John','Martin'], 'Age': [36,29,31], 'Gender':['Female','Male','Male'] }) print(emp_df) emp_df.to_csv('/users/apple/Employees.csv')
当我们运行上述程序时, Employees.csv
将创建指定的路径。
这是CSV文件的数据。
保存CSV文件,无索引列
如果我们不想有索引列,则可以简单地通过 index=False
到 to_csv()
以下函数:
emp_df.to_csv('Employees.csv',index=False)
当我们再次运行该程序时,我们将得到以下输出:
使用自定义列标题保存CSV文件
我们可以通过传递更改列标题 header
列出 to_csv()
如下:
emp_df.to_csv('Employees.csv',index=False,header = ['Emp_Name','Emp_Age','Emp_Gender'])
当我们再次运行该程序时,我们将得到以下输出:
在前一个输出中,我们可以看到列标题按照按照更改 header
列表。
使用所选列保存CSV文件
要将所选列写入CSV,我们可以通过 columns
列表函数 to_csv()
如下:
emp_df.to_csv('Employees.csv', index=False, columns = ['Name','Age'])
当我们再次运行该程序时,我们将得到以下输出:
在前面的输出中,我们可以看到它 Name
和 Age
列保存到CSV文件。
使用自定义分隔符保存CSV文件
我们还可以通过自定义分隔符 sep
属性作为参数。
让我们说你想使用'|'作为分隔符,我们可以如下所示:
emp_df.to_csv('Employees.csv', index=False, columns = ['Name','Age'])
保存CSV文件,没有标题
你也可以通过 header=False
要在没有标题的情况下保存CSV文件。
让我们说你想使用'|'作为分隔符,我们可以如下所示:
emp_df.to_csv('Employees.csv', index=False, header=False)
输出:
在前一个输出中,我们可以看到CSV文件不包含标题。
将数据添加到CSV文件
我们还可以使用CSV文件添加数据 mode='a' 并通过
header=False` ,否则标题将以添加模式重复。
让我们在举例的帮助下看:
emp_app_df = pd.DataFrame({ 'Name': ['Amar'], 'Age': [22], 'Gender':['Male'] }) print(emp_app_df) emp_df.to_csv('Employees.csv', index=False, mode='a',header=False)
在前面的输出中,我们可以看到新行添加到CSV文件。
使用index_label保存CSV文件
如果要为索引列分配名称,则可以通过 index_label
到 to_csv()
如下:
emp_df.to_csv('Employees.csv',index_label='Serial No.')