以欧洲格式显示熊猫数据框

我找到了有关如何将具有欧洲格式的 csv 文件加载到 Pandas 数据帧中并以美国格式 (2,345.21) 显示它们的问题的答案。但是,如何在 Pandas 中以欧洲格式 (2.345,21) 显示以美国格式保存的浮点数。


我试图在这里改变点和逗号:



pd.options.display.float_format = '{:,.2f}'.format


pd.options.display.float_format = '{:.,2f}'.format

但这不起作用。另一种可能性是将类型更改为字符串,然后用逗号替换点,但没有更优雅的方法吗?


似乎它适用于区域设置感知分隔符。如果您的操作系统具有德国语言环境,则很容易:


import pandas as pd

import locale

locale.setlocale(locale.LC_ALL, '')

pd.options.display.float_format = '{:n}'.format

df = pd.DataFrame([2123.4567, 234.5678, 345.6789, 456.7890],

                  index=['foo','bar','baz','quux'],

                  columns=['cost'])

print(df)

结果:


         cost

foo  2.123,46

bar   234,568

baz   345,679

quux  456,789

但是现在我正在处理格式化精度和高数字格式的问题。由于以下格式命令的结果有些令人惊讶。


#precision

pd.options.display.float_format = '{:.2n}'.format

print(df)


        cost

foo  2,1e+03

bar  2,3e+02

baz  3,5e+02

quux 4,6e+02


#high numbers

pd.options.display.float_format = '{:n}'.format

df = pd.DataFrame([1222333, 234.5678, 345.6789, 456.7890],

                  index=['foo','bar','baz','quux'],

                  columns=['cost'])

print(df)


            cost

foo  1,22233e+06

bar      234,568

baz      345,679

quux     456,789


叮当猫咪
浏览 201回答 1
1回答

凤凰求蛊

在你开始之前:conda install babel然后试试这个:from babel.numbers import decimal, format_decimalformat_decimal(22222345.22, format='#,##0.##;-#', locale='de')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python