1. errors=
有时很有用
如果一个文件必须具有特定的编码,但现有的数据框中有无法表示的字符,则可以使用errors=
来“强制”将数据保存在成本上丢失信息。可以将所有可能作为Python中open()
函数参数传递的值传递到此处。
例如,下面的代码将使用ascii编码保存csv文件,其中日语字符将被替换为?
。
df = pd.DataFrame({'A': ['Shohei Ohtani は一生に一度の選手だ。']})
df.to_csv('data1.csv', encoding='ascii', errors='replace', index=False)
print(pd.read_csv('data1.csv'))
A
0 Shohei Ohtani ???????????
2. float_format=
有时很有用
您可以使用float_format=
格式化浮点数据类型,这样做有时可以节省大量内存,但代价是失去精度。例如:
df = pd.DataFrame({'A': [*range(1,9,3)]*1000})/3
df.to_csv('data1.csv', index=False)
df.to_csv('data2.csv', index=False, float_format='%.2f')
3. 保存压缩的csv文件
自从pandas 1.0.0版本以来,您可以将一个字典传递给压缩参数,指定压缩方法和存档中的文件名。下面的代码创建了一个名为compressed_data.zip
的zip文件,其中包含一个名为data.csv
的单个文件。
df.to_csv('compressed_data.zip', index=False, compression={'method': 'zip', 'archive_name': 'data.csv'})
pd.read_csv('compressed_data.zip')
您甚至可以将内容添加到现有的存档中;只需传递 mode='a'
参数即可。
df.to_csv('compressed_data.zip', compression={'method': 'zip', 'archive_name': 'data_new.csv'}, mode='a')
index=False
以去除索引。 - Medhatto_csv
写入制表符分隔文件的特定原因吗? - DryLabRebel