我有一个与下面类似的数据框。我只需要累加某些列的总和:1月16日,2月16日,3月16日,4月16日和5月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 |
---------------------------------------------------------------------------------------
应该引入一个名为“总计”的新行,并为我月份中的所有列提供按列求和:1月16日,2月16日,3月16日,4月16日和5月16日
我尝试了以下操作,但没有成功。我得到了所有NaN值
df.loc['Total',:]= df[months_list].sum(axis=1)
答案 0 :(得分:2)
您使用了错误的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