python - 如何将 pandas 数据框转换为每列格式不同的 CSV 格式?

标签 python csv io pandas

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

  • to_csv() 不支持 to_string() 的“格式化程序”参数。我需要为每一列设置不同的格式。
  • to_string() 不支持分隔符。

到目前为止我做了什么:

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

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

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

最佳答案

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='')

关于python - 如何将 pandas 数据框转换为每列格式不同的 CSV 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23124128/

相关文章:

python - 如何在scrapy中挖掘链接中的站点

使用 httplib 发送 Python HTTPConnection 文件,检索进度

python "OverflowError"

python - 使用来自另一个 csv 文件的列创建一个新的 csv 文件

python - 在 pandas DF 中选择列

Python 3 从辩论文件中提取候选词

java - ArrayIndexOutOfBoundsException

c# - 找不到路径的一部分?

java - 为什么阻塞 IO API 在早期的 Java 中不是问题?

c - 使用c中的缓冲区读取文件