gpt4 book ai didi

python - 添加新列,这是 pandas 数据帧 groupby 子集中连续行差异的结果

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

所以我知道如何根据连续列之间的差异创建一个新列,here.但我想对数据帧的多个子集执行此操作,即 .groupby('zip')

     zip   year   val
0 48123 2013 10
1 48123 2014 11
2 48123 2015 11
3 60122 2013 13
4 60122 2014 10
5 60122 2015 10

会产生

     zip   year   val   dVal
0 48123 2013 10 1
1 48123 2014 11 0
2 48123 2015 11 NaN
3 60122 2013 13 -3
4 60122 2014 10 1
5 60122 2015 11 NaN

现在我正在使用循环遍历我的数据框

for index, group in df.groupby('zip'):
group.loc['dVal'] = group['val'].shift(-1) - group['val']

但是我有超过一百万个群组,所以需要一段时间,有更好的方法吗?

最佳答案

您可以使用sub用于减法并删除循环:

df['dVal'] = df.groupby('zip')['val'].shift(-1).sub(df['val'])
print (df)
zip year val dVal
0 48123 2013 10 1.0
1 48123 2014 11 0.0
2 48123 2015 11 NaN
3 60122 2013 13 -3.0
4 60122 2014 10 0.0
5 60122 2015 10 NaN

关于python - 添加新列,这是 pandas 数据帧 groupby 子集中连续行差异的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110258/

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