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=Falseindex_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.')

