我正在尝试将数据帧写入csv,我希望.csv格式化为逗号。我没有在to_csv文档上看到任何方式使用格式或类似的东西。
有谁知道能够格式化输出的好方法吗?
我的csv输出如下所示:
12172083.89 1341.4078 -9568703.592 10323.7222
21661725.86 -1770.2725 12669066.38 14669.7118
我希望它看起来像这样:
12,172,083.89 1,341.4078 -9,568,703.592 10,323.7222
21,661,725.86 -1,770.2725 12,669,066.38 14,669.7118
答案 0 :(得分:1)
逗号是默认分隔符。如果要选择自己的分隔符,可以通过声明pandas to_csv()方法的sep参数来实现。
df.to_csv(sep=',')
如果你的目标是创建千位分隔符并将它们导出回csv,你可以按照这个例子:
import pandas as pd
df = pd.DataFrame([[12172083.89, 1341.4078, -9568703.592, 10323.7222],
[21661725.86, -1770.2725, 12669066.38, 14669.7118]],columns=['A','B','C','D'])
for c in df.columns:
df[c] = df[c].apply(lambda x : '{0:,}'.format(x))
df.to_csv(sep='\t')
如果您只是希望pandas在打印时显示分隔符:
pd.options.display.float_format = '{:,}'.format
print(df)
答案 1 :(得分:0)
您要做的事情与csv输出无关,而是与以下内容有关:
print('{0:,}'.format(123456789000000.546776362))
产生
123,456,789,000,000.546776362
另外,您最好注意@Peter上面关于首先破坏csv结构的评论。