在 Pandas 数据框中只计算某些列的总和

3
我有一个类似下面的数据框。我需要只对Jan-16,Feb-16,Mar-16,Apr-16和May-16这些列进行求和。这些列在一个名为“months_list”的列表中。 ```html

我有一个类似下面的数据框。我需要只对Jan-16,Feb-16,Mar-16,Apr-16和May-16这些列进行求和。这些列在一个名为“months_list”的列表中。

```
--------------------------------------------------------------------------------------
| Id               |  Name             | Jan-16 | Feb-16 | Mar-16 | Apr-16 | May-16   |
| 4674393          |  John Miller      |  0     | 1      | 1      | 1      | 1        |
| 4674395          |  Joe Smith        |  0     | 0      | 1      | 1      | 1        |
---------------------------------------------------------------------------------------

我的输出应该像下面这样:

--------------------------------------------------------------------------------------
| Id               |  Name             | Jan-16 | Feb-16 | Mar-16 | Apr-16 | May-16   |
| 4674393          |  John Miller      |  0     | 1      | 1      | 1      | 1        |
| 4674395          |  Joe Smith        |  0     | 0      | 1      | 1      | 1        |
|Total             |                   |  0     | 1      | 2      | 2      | 2        |
---------------------------------------------------------------------------------------

在我的“months_list”中,应引入一个名为“Total”的新行,该行对所有列进行列求和:Jan-16、Feb-16、Mar-16、Apr-16和May-16。 我尝试了以下方法,但它没有起作用。我得到了所有的NaN值。
df.loc['Total',:]= df[months_list].sum(axis=1)

有输入可以直接复制/粘贴会很有帮助。也许是 CSV 文本? - tdelaney
1个回答

5
您正在使用错误的axis参数值。
`axis=0`: Sums the column values
`axis=1`: Sums the row values

假设您的数据框(df)如下:

In [4]: df
Out[4]: 
        Id         Name  Jan-16  Feb-16  Mar-16  Apr-16  May-16
0  4674393  John Miller       0       1       1       1       1
1  4674395    Joe Smith       0       0       1       1       1

In [10]: months_list =['Jan-16', 'Feb-16', 'Mar-16', 'Apr-16', 'May-16']

你的代码应该是:

In [12]: df.loc['Total'] = df[months_list].sum()

In [13]: df
Out[13]: 
              Id         Name  Jan-16  Feb-16  Mar-16  Apr-16  May-16
0      4674393.0  John Miller     0.0     1.0     1.0     1.0     1.0
1      4674395.0    Joe Smith     0.0     0.0     1.0     1.0     1.0
Total        NaN          NaN     0.0     1.0     2.0     2.0     2.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接