我正在遵循这篇文章的建议,来减少Pandas DataFrame的内存使用。我正在像这样在一个对象列上使用
去掉 `.astype('|S')` 函数并将结果输出到 csv 文件中,即可得到预期的结果:
这个问题在谷歌上可以找到GitHub的相关问题,但我认为它们与这个问题不相关(看起来它们也已经被修复):to_csv和Python 3中的字节,BUG:修复CSVFormatter.save的默认编码 我使用的是Python 3.6.4和Pandas 0.22.0。我测试了在MacOS和Windows上行为一致。有什么建议可以在没有b前缀和单引号的情况下输出列?
.astype('|S')
:data_frame['COLUMN1'] = data_frame['COLUMN1'].astype('|S')
data_frame['COLUMN2'] = data_frame['COLUMN2'].astype('|S')
在DataFrame上执行此操作可将内存使用量减少20-40%,而不会对处理列产生负面影响。但是,当使用.to_csv()
输出文件时:
data_frame.to_csv(filename, sep='\t', encoding='utf-8')
.astype('|S')
的列输出时带有单引号b的前缀:
b'00001234' b'Source'
去掉 `.astype('|S')` 函数并将结果输出到 csv 文件中,即可得到预期的结果:
00001234 Source
这个问题在谷歌上可以找到GitHub的相关问题,但我认为它们与这个问题不相关(看起来它们也已经被修复):to_csv和Python 3中的字节,BUG:修复CSVFormatter.save的默认编码 我使用的是Python 3.6.4和Pandas 0.22.0。我测试了在MacOS和Windows上行为一致。有什么建议可以在没有b前缀和单引号的情况下输出列?