我对熊猫比较陌生,我不知道解决我的问题的最佳方法。好吧,我有一个 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) 我在场景中有一些自定义项目。我想允许用户使用鼠标连接这两个项目。我检查了这个问题的答案,但没有规定让用户连接这两点。(另外,请注意该物品必须是可移动的)
这是我想要的演示:
我想要两个椭圆之间的连接,如上所示
我可以知道如何做到这一点吗?