Pandas dataframe到CSV

时间:2020-02-23 14:42:07  来源:igfitidea点击:

在本教程中,我们将看到如何将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=Falseto_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'])

当我们再次运行该程序时,我们将得到以下输出:

在前面的输出中,我们可以看到它 NameAge列保存到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_labelto_csv()如下:

emp_df.to_csv('Employees.csv',index_label='Serial No.')