Pandas DataFrame to_csv() 函数将 DataFrame 转换为 CSV 数据。我们可以传递一个文件对象来将 CSV 数据写入文件中。否则,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=".",
)
一些重要的参数包括:
让我们看一些使用 to_csv() 函数将 DataFrame 转换为 CSV 数据的常见示例。
import pandas as pd
d1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, 2], 'Role': ['CEO', 'CTO']}
df = pd.DataFrame(d1)
print('DataFrame:\n', df)
# 默认 CSV
csv_data = df.to_csv()
print('\nCSV String:\n', csv_data)
输出:
DataFrame:
Name ID Role
0 Pankaj 1 CEO
1 Meghna 2 CTO
CSV String:
,Name,ID,Role
0,Pankaj,1,CEO
1,Meghna,2,CTO
csv_data = df.to_csv(sep='|')
print(csv_data)
输出:
|Name|ID|Role
0|Pankaj|1|CEO
1|Meghna|2|CTO
如果指定的分隔符长度不是 1,则会引发 TypeError: “delimiter” must be a 1-character string。
csv_data = df.to_csv(columns=['Name', 'ID'])
print(csv_data)
输出:
,Name,ID
0,Pankaj,1
1,Meghna,2
请注意,索引不被视为有效列。
csv_data = df.to_csv(header=False)
print(csv_data)
输出:
0,Pankaj,1,CEO
1,Meghna,2,CTO
csv_data = df.to_csv(header=['NAME', 'ID', 'ROLE'])
print(csv_data)
输出:
,NAME,ID,ROLE
0,Pankaj,1,CEO
1,Meghna,2,CTO
同样,索引不被视为 DataFrame 对象的列。
csv_data = df.to_csv(index=False)
print(csv_data)
输出:
Name,ID,Role
Pankaj,1,CEO
Meghna,2,CTO
csv_data = df.to_csv(index_label='Sl No.')
print(csv_data)
输出:
Sl No.,Name,ID,Role
0,Pankaj,1,CEO
1,Meghna,2,CTO
with open('csv_data.txt', 'w') as csv_file:
df.to_csv(path_or_buf=csv_file)
我们使用 with 语句打开文件,它会在 with 语句块执行完成时关闭文件。此代码片段将创建一个包含以下数据的 CSV 文件。!Pandas DataFrame To Csv File
import pandas as pd
d1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, pd.NaT], 'Role': [pd.NaT, 'CTO']}
df = pd.DataFrame(d1)
print('DataFrame:\n', df)
csv_data = df.to_csv()
print('\nCSV String:\n', csv_data)
csv_data = df.to_csv(na_rep="None")
print('CSV String with Null Data Representation:\n', csv_data)
输出:
DataFrame:
Name ID Role
0 Pankaj 1 NaT
1 Meghna NaT CTO
CSV String:
,Name,ID,Role
0,Pankaj,1,
1,Meghna,,CTO
CSV String with Null Data Representation:
,Name,ID,Role
0,Pankaj,1,None
1,Meghna,None,CTO