Pandas to_csv() - 将数据帧转换为 CSV

Pandas DataFrame to_csv() 函数将 DataFrame 转换为 CSV 数据. 我们可以传输文件对象以将 CSV 数据写入文件.否则,CSV 数据将以字符串格式返回。

Pandas 数据框 to_csv() 语法

DataFrame to_csv() 函数的语法是:

 1def to_csv(
 2    self,
 3    path_or_buf=None,
 4    sep=",",
 5    na_rep="",
 6    float_format=None,
 7    columns=None,
 8    header=True,
 9    index=True,
10    index_label=None,
11    mode="w",
12    encoding=None,
13    compression="infer",
14    quoting=None,
15    quotechar='"',
16    line_terminator=None,
17    chunksize=None,
18    date_format=None,
19    doublequote=True,
20    escapechar=None,
21    decimal=".",
22)

一些重要的参数是:

若不提供此参数,则 CSV 数据返回为字符串

  • sep:对 CSV 数据的界限。它应该是长度 1 的字符串,默认的字符串是 comma
  • na_rep:字符串代表 null 或缺少值,默认的字符串是空字符串
  • columns:一个序列来指定要在 CSV 输出中包含的列 header:允许的值是 boolean 或字符串列表,默认的字符串是 True。如果错误,字符串名不在输出中。如果字符串列表被用来编写字符串名,则字符串

Pandas DataFrame 到 CSV 示例

让我们看看使用 to_csv() 函数将 DataFrame 转换为 CSV 数据的一些常见例子。

转换DataFrame 到 CSV 字符串

 1import pandas as pd
 2
 3d1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, 2], 'Role': ['CEO', 'CTO']}
 4
 5df = pd.DataFrame(d1)
 6
 7print('DataFrame:\n', df)
 8
 9# default CSV
10csv_data = df.to_csv()
11print('\nCSV String:\n', csv_data)

输出:

1DataFrame:
2      Name ID Role
30 Pankaj 1 CEO
41 Meghna 2 CTO
5
6CSV String:
7 ,Name,ID,Role
80,Pankaj,1,CEO
91,Meghna,2,CTO

2. 指定 CSV 输出的界限

1csv_data = df.to_csv(sep='|')
2print(csv_data)

输出:

1|Name|ID|Role
20|Pankaj|1|CEO
31|Meghna|2|CTO

如果指定的分界器长度不为1, TypeError:分界器必须是1个字符的字符串

仅为 CSV 输出选择少量列

1csv_data = df.to_csv(columns=['Name', 'ID'])
2print(csv_data)

输出:

1,Name,ID
20,Pankaj,1
31,Meghna,2

请注意,该索引不被视为有效的列。

忽略 CSV 输出中的 Header 行

1csv_data = df.to_csv(header=False)
2print(csv_data)

输出:

10,Pankaj,1,CEO
21,Meghna,2,CTO

5. 在 CSV 中设置自定义列名称

1csv_data = df.to_csv(header=['NAME', 'ID', 'ROLE'])
2print(csv_data)

输出:

1,NAME,ID,ROLE
20,Pankaj,1,CEO
31,Meghna,2,CTO

再次,索引不被视为 DataFrame 对象的列。

跳过 CSV 输出中的索引列

1csv_data = df.to_csv(index=False)
2print(csv_data)

输出:

1Name,ID,Role
2Pankaj,1,CEO
3Meghna,2,CTO

设置 CSV 中的索引列名称

1csv_data = df.to_csv(index_label='Sl No.')
2print(csv_data)

输出:

1Sl No.,Name,ID,Role
20,Pankaj,1,CEO
31,Meghna,2,CTO

转换 DataFrame 到 CSV 文件

1with open('csv_data.txt', 'w') as csv_file:
2    df.to_csv(path_or_buf=csv_file)

We are using with statement to open the file, it takes care of closing the file when the with statement block execution is finished. This code snippet will create a CSV file with the following data. Pandas DataFrame To Csv File

9. CSV 输出中的 Null、NA 或缺失数据代表性

 1import pandas as pd
 2
 3d1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, pd.NaT], 'Role': [pd.NaT, 'CTO']}
 4df = pd.DataFrame(d1)
 5print('DataFrame:\n', df)
 6
 7csv_data = df.to_csv()
 8print('\nCSV String:\n', csv_data)
 9
10csv_data = df.to_csv(na_rep="None")
11print('CSV String with Null Data Representation:\n', csv_data)

输出:

 1DataFrame:
 2      Name ID Role
 30 Pankaj 1 NaT
 41 Meghna NaT CTO
 5
 6CSV String:
 7 ,Name,ID,Role
 80,Pankaj,1,
 91,Meghna,,CTO
10
11CSV String with Null Data Representation:
12 ,Name,ID,Role
130,Pankaj,1,None
141,Meghna,None,CTO

参考

Published At
Categories with 技术
Tagged with
comments powered by Disqus