保存DataFrame到csv文件

这是系列文章,我会按照stackoverflow上pandas相关问题投票数排序进行整理学习。不学习是会变咸鱼的~

原问题:Pandas writing dataframe to csv file,如题,将dataframe写入到csv文件可以使用to_csv方法。

1
2
3
df.to_csv(
['path_or_buf=None', "sep=','", "na_rep=''", 'float_format=None', 'columns=None', 'header=True', 'index=True', 'index_label=None', "mode='w'", 'encoding=None', 'compression=None', 'quoting=None', 'quotechar=\'"\'', "line_terminator='\\n'", 'chunksize=None', 'tupleize_cols=None', 'date_format=None', 'doublequote=True', 'escapechar=None', "decimal='.'"],
)

解释几个常用的参数,详细信息查看官方文档

  • path_or_buf:路径,string类型。df保存为csv文件的路径,相对路径或者绝对路径。
  • sep:分隔符,默认是“,”,可以自由设置。
  • na_rep:空值替换,默认为空字符串。
  • float_format:float类型数字的格式设置。如float_format=”%.2f”。
  • columns:序列。选择要写入的列。
  • header:默认为True(Series默认为False),可以是string和list。列名。
  • index:默认True,即行名。
  • mode:默认为w,即写模式。
  • encoding:编码方式。
  • chunksize:一次写入行数。

例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two one two two one one'.split(),
'C': np.arange(8), 'D': np.arange(8) * 2})
df
"""
A B C D
0 foo one 0 0
1 bar one 1 2
2 foo two 2 4
3 bar one 3 6
4 foo two 4 8
5 bar two 5 10
6 foo one 6 12
7 foo one 7 14
"""

# 直接保存
df.to_csv('out.csv', sep='\t', encoding='utf-8', index=False)