Python 2.7 格式化数据帧中数字的千位分隔符

Python 2.7 格式化数据帧中数字的千位分隔符,python-2.7,pandas,Python 2.7,Pandas,我正在尝试将数据帧写入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

我正在尝试将数据帧写入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
我希望它看起来像这样:

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

逗号是默认的分隔符。如果要选择自己的分隔符,可以通过将pandas的sep参数声明为_csv()方法来实现。
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')
如果您只想在打印时显示分隔符:

pd.options.display.float_format = '{:,}'.format
print(df)

您要做的与csv输出无关,而是与以下内容相关:

print('{0:,}'.format(123456789000000.546776362))
产生

123,456,789,000,000.546776362


此外,你最好注意上面@Peter关于首先破坏csv结构的评论。

不清楚的问题,默认情况下
to_csv
使用逗号作为分隔符,因此你需要发布原始数据,你的代码来重新创建df,你尝试了什么,结果是什么,理想的结果我认为你把csv和1000个分隔符混在一起了不用说,如果你要在逗号分隔的值文件中加逗号,请确保为分隔符指定一个非逗号符号
sep
:)那么整数呢?我找不出整数格式选项。