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

Pandas DataFrame to_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 数据的文件对象。如果未提供此参数,则 CSV 数据将以字符串形式返回。sep: CSV 数据的分隔符。它应该是一个长度为 1 的字符串,默认为逗号。na_rep: 表示空值或缺失值的字符串,默认为空字符串。columns: 用于指定要包含在 CSV 输出中的列的序列。header: 允许的值为布尔值或字符串列表,默认为 True。如果为 False,则不会在输出中写入列名。如果是字符串列表,则用于写入列名。字符串列表的长度应与写入 CSV 文件中的列数相同。index: 如果为 True,则索引包含在 CSV 数据中。如果为 False,则索引值不会写入 CSV 输出。index_label: 用于指定索引的列名。

Pandas DataFrame 转换为 CSV 示例

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

1. 将 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

2. 指定 CSV 输出的分隔符

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。

3. 仅选择部分列进行 CSV 输出

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

print(csv_data)

输出:

,Name,ID

0,Pankaj,1

1,Meghna,2

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

4. 在 CSV 输出中忽略标题行

csv_data = df.to_csv(header=False)

print(csv_data)

输出:

0,Pankaj,1,CEO

1,Meghna,2,CTO

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

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

print(csv_data)

输出:

,NAME,ID,ROLE

0,Pankaj,1,CEO

1,Meghna,2,CTO

同样,索引不被视为 DataFrame 对象的列。

6. 在 CSV 输出中跳过索引列

csv_data = df.to_csv(index=False)

print(csv_data)

输出:

Name,ID,Role

Pankaj,1,CEO

Meghna,2,CTO

7. 在 CSV 中设置索引列名

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

8. 将 DataFrame 转换为 CSV 文件

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

9. CSV 输出中的空值表示

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

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: