如何格式化带有千位分隔符和括号中的负数的数据透视表数字?
Posted
技术标签:
【中文标题】如何格式化带有千位分隔符和括号中的负数的数据透视表数字?【英文标题】:How to format pivot table numbers with a thousands seperator and negative numbers in brackets? 【发布时间】:2019-09-29 14:08:51 【问题描述】:我想将我的负数格式化为“会计”格式,即用括号和逗号作为千位分隔符。例如,我想将 -1000000 格式化为 (1,000,000)。
我可以用千位分隔符或用括号表示负数来格式化我的数字(在数据透视表中),但不能同时使用这两种方法。
这会格式化带有千位分隔符的数据透视表(别名 pt)中的数字:
pd.options.display.float_format = ':,.0f'.format
print(pt)
这会格式化数据透视表中的数字,并用括号表示负数:
formatter = lambda x: '(%s)' % str(x)[1:] if x < 0 else str(x)
pd.options.display.float_format = formatter
pt
【问题讨论】:
【参考方案1】:def my_formatter(x):
if x < 0:
return '(:,.0f)'.format(-x)
return ':,.0f'.format(x)
pd.options.display.float_format = my_formatter
例子:
pd.DataFrame([10000000., -20000000.])
# 0
#0 10,000,000
#1 (20,000,000)
【讨论】:
以上是关于如何格式化带有千位分隔符和括号中的负数的数据透视表数字?的主要内容,如果未能解决你的问题,请参考以下文章