Pandas to_csv()–将DataFrame转换为CSV
时间:2020-02-23 14:42:09 来源:igfitidea点击:
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输出中的列。
标头:允许的值为布尔值或者字符串列表,默认值为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': ['hyman', 'Meghna'], 'ID': [1, 2], 'Role': ['CEO', 'CTO']} df = pd.DataFrame(d1) print('DataFrame:\n', df) # default CSV csv_data = df.to_csv() print('\nCSV String:\n', csv_data)
输出:
DataFrame: Name ID Role 0 hyman 1 CEO 1 Meghna 2 CTO CSV String: ,Name,ID,Role 0,hyman,1,CEO 1,Meghna,2,CTO
2.为CSV输出指定定界符
csv_data = df.to_csv(sep='|') print(csv_data)
输出:
|Name|ID|Role 0|hyman|1|CEO 1|Meghna|2|CTO
如果指定的定界符长度不为1,则TypeError:" delimiter"必须为1个字符的字符串。
3.仅选择几列用于CSV输出
csv_data = df.to_csv(columns=['Name', 'ID']) print(csv_data)
输出:
,Name,ID 0,hyman,1 1,Meghna,2
注意,索引不被视为有效列。
4.忽略CSV输出中的标题行
csv_data = df.to_csv(header=False) print(csv_data)
输出:
0,hyman,1,CEO 1,Meghna,2,CTO
5.在CSV中设置自定义列名称
csv_data = df.to_csv(header=['NAME', 'ID', 'ROLE']) print(csv_data)
输出:
,NAME,ID,ROLE 0,hyman,1,CEO 1,Meghna,2,CTO
同样,索引不被视为DataFrame对象的列。
6.跳过CSV输出中的索引列
csv_data = df.to_csv(index=False) print(csv_data)
输出:
Name,ID,Role hyman,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,hyman,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文件。
9. CSV输出中为空,不存在或者缺少数据表示
import pandas as pd d1 = {'Name': ['hyman', '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 hyman 1 NaT 1 Meghna NaT CTO CSV String: ,Name,ID,Role 0,hyman,1, 1,Meghna,,CTO CSV String with Null Data Representation: ,Name,ID,Role 0,hyman,1,None 1,Meghna,None,CTO