gpt4 book ai didi

python - 从两个不同的列中获取 id 值的滚动总和?

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:40 25 4
gpt4 key购买 nike

df:

id1     id2     value1    value2
-----------------------------------
a b 10 5
c a 5 10
b c 0 0
c d 2 1
d a 10 20
a c 5 10

从列 ['id1','id2'] 中获取与 id 'a' 关联的值的总和:

id1     id2     a.rolling(2).sum()
-----------------------------------
a b NaN
c a 20
d a 30
a c 25

如何使用 df.groupby 函数从两个不同的列中获取 id 'a' 值的滚动总和?

我试过这个 df.groupby(['id1','id2])['value1','value2'].transform(lambda x: x.rolling(2).sum()),但这没有用。

最佳答案

这里有一个方法可以做到这一点

i = df.filter(like='id')
v = df.filter(like='va')

x, y = np.where(i == 'a')

df.iloc[x].assign(A=v.values[x, y]).assign(Roll=lambda d: d.A.rolling(2).sum())

id1 id2 value1 value2 A Roll
0 a b 10 5 10 NaN
1 c a 5 10 10 20.0
4 d a 10 20 20 30.0
5 a c 5 10 5 25.0

关于python - 从两个不同的列中获取 id 值的滚动总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073080/

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