以欧洲格式显示 pandas 数据框
display pandas dataframe with european formatting
我找到了有关如何将欧洲格式的 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
开始之前:
conda install babel
然后试试这个:
from babel.numbers import decimal, format_decimal
format_decimal(22222345.22, format='#,##0.##;-#', locale='de')
我找到了有关如何将欧洲格式的 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
开始之前:
conda install babel
然后试试这个:
from babel.numbers import decimal, format_decimal
format_decimal(22222345.22, format='#,##0.##;-#', locale='de')