首页 > 解决方案 > 使用 Pandas,如何使用 float_format 修复 .sum().sum() 的格式

问题描述

我将以下 csv 作为数据框读取:

>>> test=pd.read_csv('C:/Temp/test.csv')
>>> test
     a    b    c
0  1.1  2.2  3.3
1  3.0  4.0  5.0

我想把所有这些数字加起来,显示为货币。我认为最有效的方法是使用.sum().sum()方法。

>>> pd.set_option('display.float_format','${:,.2f}'.format)
>>> test
      a     b     c
0 $1.10 $2.20 $3.30
1 $3.00 $4.00 $5.00
>>> test.sum()
a   $4.10
b   $6.20
c   $8.30
dtype: float64
>>> test.sum().sum()
18.6

我想要的格式化选项适用于数据框和第一个总和;但是总和的总和不使用格式,即使数据类型仍然是浮点数:

>>> test.sum().sum().dtype
dtype('float64')
>>> test.sum().dtype
dtype('float64')

我该如何解决?

标签: pythonpandassumformat

解决方案


的输出test.sum().sum()是一个标量,因此它不应用 pandas 格式选项。要格式化这种类型的数据,您可以使用标准的 pythonformat函数:

"${:,.2f}".format(df.sum().sum())

推荐阅读