gpt4 book ai didi

python - 如何格式化 float 以千位、反点和逗号分隔?

转载 作者:行者123 更新时间:2023-11-30 22:59:38 26 4
gpt4 key购买 nike

如何格式化 pandas 数据帧中的 float ,以用点和逗号分隔数千个,而不是用逗号和点分隔? ?

输入:

112299420.40

实际输出:

112,299,420.40

所需输出:

112.299.420,40

我的代码:

pd.set_option('display.float_format', lambda x: '{:,.2f}'.format(x) if abs(x) < 10000 else '{:,.0f}'.format(x))

如何更改这段代码以产生所需的输出?

我尝试过以直观的方式更改它,但没有成功......

来自: '{:,.2f}'

收件人: '{:.,2f}'

最佳答案

Python 2.7 字符串格式化功能在这种情况下似乎没有帮助。但是,您可以使用 locale 模块并将您的区域设置设置为使用所需千位/小数分隔符的国家/语言(在下面的示例中为巴西葡萄牙语):

import locale
locale.setlocale(locale.LC_ALL, 'pt_br.utf-8')
pd.set_option('display.float_format', lambda x: locale.format('%.2f', x, grouping=True))

示例:

In [45]: pd.Series([1111.15, 123456.78])
Out[45]:
0 1.111,15
1 123.456,78
dtype: float64
<小时/>

如果您想忽略 10000 以下的数字的小数(如代码所示):

In [49]: pd.set_option('display.float_format', lambda x: locale.format('%.2f', x, grouping=True) if abs(x)>10000 else locale.format('%.0f', x))

In [50]: s
0 1111
1 123.456,78
dtype: float64

关于python - 如何格式化 float 以千位、反点和逗号分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35660823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com