我有以下数据帧:
df
Name A B C D
0 Americas
1 Mark 1 2 3 4
2 Mat 5 6 7 8
3 ANZ
4 Pat 9 1 2 3
5 Pacific
6 Zack 4 5 6 7
7 Zoey 8 9 1 2
8 Zee 3 4 5 6
此处按第1行与第2行之和计算
澳新银行按第4行之和计算
太平洋按第6行与第8行之和计算
注意:这些行号是常量,不依赖于任何标准,而是按原样使用。
计算各列总计的方法如下所示:
df.at[5, 'A'] = df['A'].loc[6:8].sum()
df.at[5, 'B'] = df['B'].loc[6:8].sum()
df.at[5, 'C'] = df['C'].loc[6:8].sum()
df.at[5, 'D'] = df['D'].loc[6:8].sum()
有没有一种方法可以不用三行代码就可以做到这一点
结果数据帧:
df
Name A B C D
0 Americas 6 8 10 12
1 Mark 1 2 3 4
2 Mat 5 6 7 8
3 ANZ 9 1 2 3
4 Pat 9 1 2 3
5 Pacific 15 18 12 15
6 Zack 4 5 6 7
7 Zoey 8 9 1 2
8 Zee 3 4 5 6
我将使用
isna
和all
查找缺少的行,并使用cumsum
创建组。然后在groupby
和transform
和sum
中使用它。使用fillna
填充缺少的值First find让我们使用
isnull
布尔值查找需要填充的列然后,我们为groupby创建一个条件列
由于您希望返回原始数据帧,因此我们可以使用
iloc
沿索引重新分配值相关问题 更多 >
编程相关推荐