这应该很容易,但是以某种方式我找不到有效的解决方案。
我有一个熊猫数据框,看起来像这样:
Slno Date col2 col3 col4 col5 col6
0 01/02/20 2 1 2 5 d
1 03/02/20 5 1 2 4 g
2 04/02/20 5 1 2 5 h
3 05/02/20 4 1 2 6 e
4 08/02/20 8 1 2 5 g
5 05/02/20 8 1 2 8 r
**我想按日期sum()
分组并按行获取col2,col3,col4,col5的行作为新列总计
这是我尝试过的:
df_new[Total] = df.groupby(['Date', sort=False])["col2", "col3", col4", "col5].sum(axis = 1)
它给出ValueError:传递了错误的项目数4,放置意味着1
我也尝试过
df = (df.groupby(['Date'])
.agg(Total=('ConfirmedIndianNational', 'ConfirmedForeignNational', 'Cured', 'Deaths', 'sum'))
.reset_index())
它给出TypeError:aggregate()缺少1个必需的位置参数:'arg'
我是新蟒蛇,搜索了所有可能的解决方案,但有新用途。
您可以设置Date
为索引,然后取轴= 1上的列总和,然后进行分组level=0
和变换sum
df['Total'] = (df.set_index('Date')[["col2", "col3","col4", "col5"]].sum(1)
.groupby(level=0).transform('sum').to_numpy())
print(df)
Slno Date col2 col3 col4 col5 col6 Total
0 0 01/02/20 2 1 2 5 d 10
1 1 03/02/20 5 1 2 4 g 12
2 2 04/02/20 5 1 2 5 h 13
3 3 05/02/20 4 1 2 6 e 32 # this is duplicated per group
4 4 08/02/20 8 1 2 5 g 16
5 5 05/02/20 8 1 2 8 r 32 # this is duplicated per group
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句