gpt4 book ai didi

python - 一组 pandas 数据帧内的行操作

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

我有一个 pandas 数据框,我需要在属于同一组的行之间执行各种操作,例如找出它们之间的区别。例如,我有以下内容:

 var1  var2

1 7
1 10
1 15
2 3
2 9
2 5

我想要得到以下内容:

 var1  var2   var3

1 7 NaN
1 10 3
1 15 5
2 3 NaN
2 9 6
2 5 -4

我知道我可以循环 var1 的不同组,使用移位运算符获取差异,然后附加结果。我想知道是否有更好的方法来做到这一点。感谢您的帮助。

最佳答案

您想要在 groupby 对象上使用 transform 将新列添加回原始 df:

In [58]:    
df['var3'] = df.groupby('var1')['var2'].transform(lambda x: x.diff())
df

Out[58]:
var1 var2 var3
0 1 7 NaN
1 1 10 3.0
2 1 15 5.0
3 2 3 NaN
4 2 9 6.0
5 2 5 -4.0

因此,这对“var1”进行分组,然后在每个组上调用 lambda 来计算差异,并使用 transform 将返回一个系列,其索引与原始 df 对齐,以便您可以将其添加回来作为新列

关于python - 一组 pandas 数据帧内的行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39145468/

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