如何使用括号内的千位分隔符和负数格式化数据透视表编号?

时间:2019-09-29 14:08:51

标签: python pandas

我想将我的负数格式化为“会计”格式,即用方括号和逗号作为千位分隔符。例如,我想将-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 个答案:

答案 0 :(得分:0)

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)