小编Rod*_*igo的帖子

如何将熊猫列中的变量范围与另一列相加

我对熊猫比较陌生,我不知道解决我的问题的最佳方法。好吧,我有一个 df :一个索引,以及一个名为“Data”的列和一个名为“sum”的空列中的数据。

我需要帮助来创建一个函数,以在列“总和”中添加“数据”列的可变行组的总和。分组标准是组中不应有空行。

这里有一个例子:

index  Data Sum
0       1   
1       1   2
2       
3       
4       1   
5       1   
6       1   3
7       
8       1   
9       1   2
10      
11      1   
12      1   
13      1   
14      1   
15      1   5   
16  
17      1   1
18  
19      1   1
20  
Run Code Online (Sandbox Code Playgroud)

如您所见,'Data' 中每组数据的长度是可变的,可以是一行,也可以是任意数量的行。总和必须在组的末尾。例如:“数据”列的第 4、5、6 行组的总和应位于“总和”列的第 6 行。

任何见解将不胜感激。

更新

通过实施ansev建议的方法3解决了该问题。但是由于主程序的变化,每个块的总和,现在需要在每个块的开始处(如果块有多于一行)。然后我使用该df = df.iloc[::-1]指令两次以反转列并再次恢复正常。非常感谢!!!!!

df = df.iloc[::-1]
blocks = df['Data'].isnull().cumsum()
m = blocks.duplicated(keep='last')
df['Sum'] = df.groupby(blocks)['Data'].cumsum().mask(m)
df = df.iloc[::-1]

print(df)

Data  Sum …
Run Code Online (Sandbox Code Playgroud)

dataframe python-3.x pandas

2
推荐指数
1
解决办法
121
查看次数

标签 统计

dataframe ×1

pandas ×1

python-3.x ×1