python - 如何格式化带有千位分隔符和括号中的负数的数据透视表数字?
问题描述
我想以“会计”格式格式化我的负数,即用括号和逗号作为千位分隔符。例如,我想将 -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
解决方案
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)
推荐阅读
- enums - 锈:如何简化枚举嵌套匹配?
- crystal-reports - 日期分组水晶报表
- arduino - SpenceKonde 在 ATtinyCore 上支持的 Arduino 功能
- jenkins - stash jenkins @script 目录
- java - Showing a blank activity in android
- java - 有没有办法为 ArrayDeque 实现 O(1) 时间复杂度的检索 (get())?
- c# - 将整数字符串中的每个 Integer 转换为带有 0x 前缀的 Hex 格式
- reactjs - 对许多重新渲染错误反应,如何避免它
- c# - ServerCertificateValidationCallback() 返回 true 但 GetResponse() 抛出异常
- arrays - 此代码适用于 N=348,但在 N = 349 时不起作用