如何在熊猫中获得滚动组我需要以下组(1,2),然后是组(2,3),然后是组(3,4),依此类推。我能做的最好的事情是组(1,2),然后分组(3,4)。我将组1添加到组2中。然后下一个迭代是组(2,3)。我采用第2组的新更新值,并将它们添加到第3组的原始值。然后,我将那些第3组的新更新的值添加到第4组的原始值中,这样我们得到:
其中最重要的部分是,不要卡在以正确的顺序添加值上,最重要的是,我想更新组,我要使用组1的值来更新组2(我的帖子是只是一个示例),然后在下一个转换中,我希望我在group2中更新的那些新组值来更新下一个组3。然后在下一个转换或应用中,我希望那些新的组3值以便我可以更新组4。我希望这是有道理的
num group
1 1
2 1
2 1
4 1
5 2
6 2
7 2
8 2
9 3
10 3
11 3
12 3
13 4
14 4
15 4
16 4
df=pd.read_clipboard()
我希望我的第一个小组如下。第二组已将其值添加到第一组:
1 1
2 1
3 1
4 1
6 2
8 2
10 2
14 2
由于将第一组添加到第二组,因此我的第二组将有望成为新的修改值。第3组将其原始值添加到第2组的新值中:
6 2
8 2
10 2
14 2
15 3
18 3
21 3
26 3
我的第三个组是第3组的新值。第4组将是第3组按顺序添加的原始值:
15 3
18 3
21 3
26 3
29 4
33 4
36 4
42 4
我试过了
df.groupby(np.arrange(len(df))//4))
,除了只按组(1,2)进行拆分外,下一个组为(3,4)。我需要(1,2),(2,3),(3,4)。这是由于我要处理第1组以得出第2组的值。然后,我使用组2创建组3的值。然后,我使用组3来确定组4的值。任何帮助,将不胜感激。我举了一个简单的例子,因为我不需要在与小组进行的工作方面的帮助,我只需要知道如何进行类似的分组即可。
同样,这只是一个示例,其中最重要的部分是,不要卡在以正确的顺序添加值的过程中,我并不是要测试任何人。真的最重要的是,我想更新组,我要用组1的值来更新组2(我的帖子只是一个例子),然后在下一个转换中,我要在组2中更新那些新的组值更新下一个组,即3。然后在下一个转换或应用中,我想要那些新的组3值,以便我可以更新组4。我希望这是有道理的
最佳答案
我会做
s=df.group.drop_duplicates()
l=[df.loc[df.group.isin([x,y])]for x , y in zip(s.iloc[1:],s.shift().iloc[1:])]
更新资料
df['num']=df['num'].groupby(df.groupby('group').cumcount()).cumsum()
s=df.group.drop_duplicates()
l=[df.loc[df.group.isin([x,y])]for x , y in zip(s.iloc[1:],s.shift().iloc[1:])]
l[0]
num group
0 1 1
1 2 1
2 2 1
3 4 1
4 6 2
5 8 2
6 9 2
7 12 2
关于python - 您如何在 Pandas 中建立组合的滚动小组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59549155/