Python 2.7 格式化数据帧中数字的千位分隔符
我正在尝试将数据帧写入csv,我希望.csv的格式使用逗号。我在to_csv文档上看不到任何使用这种格式或类似内容的方法 有人知道一个好方法来格式化我的输出吗 我的csv输出如下所示: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
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
:)那么整数呢?我找不出整数格式选项。