Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用千位分隔符和括号中的负数格式化数据透视表编号?_Python_Pandas - Fatal编程技术网

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

Python 如何使用千位分隔符和括号中的负数格式化数据透视表编号?,python,pandas,Python,Pandas,我想将负数的格式设置为“会计”格式,即用括号和逗号作为千位分隔符。例如,我想将-1000000格式化为(1000000) 我可以用1000个分隔符或括号来设置我的数字格式(在透视表中),但不能同时使用两者 这将使用千位分隔符格式化数据透视表(别名pt)中的数字: pd.options.display.float_format = '{:,.0f}'.format print(pt) 这将格式化数据透视表中的数字,并用括号表示负数: formatter = lambda x: '(%s)'

我想将负数的格式设置为“会计”格式,即用括号和逗号作为千位分隔符。例如,我想将-1000000格式化为(1000000)

我可以用1000个分隔符或括号来设置我的数字格式(在透视表中),但不能同时使用两者

  • 这将使用千位分隔符格式化数据透视表(别名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
    
    formatter=lambda x:'(%s)%str(x)[1:]如果x<0,其他str(x)
    pd.options.display.float_格式=格式化程序
    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)