为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

叮当猫咪 2021-09-23 09:06:14
我找到了有关如何将具有欧洲格式的 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 pdimport localelocale.setlocale(locale.LC_ALL, '')pd.options.display.float_format = '{:n}'.formatdf = pd.DataFrame([2123.4567, 234.5678, 345.6789, 456.7890],                  index=['foo','bar','baz','quux'],                  columns=['cost'])print(df)结果:         costfoo  2.123,46bar   234,568baz   345,679quux  456,789但是现在我正在处理格式化精度和高数字格式的问题。由于以下格式命令的结果有些令人惊讶。#precisionpd.options.display.float_format = '{:.2n}'.formatprint(df)        costfoo  2,1e+03bar  2,3e+02baz  3,5e+02quux 4,6e+02#high numberspd.options.display.float_format = '{:n}'.formatdf = pd.DataFrame([1222333, 234.5678, 345.6789, 456.7890],                  index=['foo','bar','baz','quux'],                  columns=['cost'])print(df)            costfoo  1,22233e+06bar      234,568baz      345,679quux     456,789
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

在你开始之前:


conda install babel

然后试试这个:


from babel.numbers import decimal, format_decimal

format_decimal(22222345.22, format='#,##0.##;-#', locale='de')


查看完整回答
反对 回复 2021-09-23
  • 1 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信