gpt4 book ai didi

python - 如何在 Pandas 中组合滚动组

转载 作者:行者123 更新时间:2023-12-01 19:29:52 26 4
gpt4 key购买 nike

如何在 Pandas 中获得滚动组我需要以下组 (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 组的新值。第四组将是第三组按顺序添加的原始值:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com