如何将pandas数据帧转换为CSV格式,每列不同格式?

时间:2014-04-17 03:34:39

标签: python csv io pandas

pandas的DataFrame文本输出函数的问题:

  • to_csv()不支持to_string()的'formatters'参数。我需要为每列提供不同的格式。
  • to_string()不支持分隔符。

到目前为止我做了什么:

我以新的Python格式化格式生成格式化字符串列表,例如['{8.1f}','{9.3f}',...,],然后执行此操作:

f.write(', '.join(fmt).format(*data)+'\r\n')

有没有办法我可以让熊猫为我做一些这样的黑客攻击或者是一个功能请求我已经完成了所有的工作? ;)

1 个答案:

答案 0 :(得分:2)

np.savetxt可以这样做(通过提供fmt参数,可以是list),但这意味着列名必须单独写入(header参数):

np.savetxt('temp.csv', df.values, fmt=['%8.1f','%9.3f','%8.1f','%9.3f','%8.1f'], 
           delimiter=',', header='     '+'     ,'.join(df.columns), comments='')