如果这是一个非常基本的问题,我感到非常抱歉,但不幸的是,我在找出解决方案时失败了。
我需要从最后一个值&中减去列中的第一个值(在本例中是我的df中的第8列)。在将groupby应用于我的pandas df以获得每个id一个值之后,将其除以一个数字(例如60)。理想情况下,最终输出看起来像这样:
(df.iloc[-1,8] - df.iloc[0,8])/60
我有一个实际的等式,当应用于df的整个列时,它自己可以工作:
df.groupby(['id']).apply((df.iloc[-1,8] - df.iloc[0,8])/60)
但是我无法将此部分与groupby函数结合使用。其中,我试过申请,这是行不通的。
{{1}}
我也尝试使用方程式部分创建一个函数,然后执行apply(func)但到目前为止我的尝试都没有奏效。非常感谢任何帮助,谢谢!
答案 0 :(得分:2)
演示:
In [204]: df
Out[204]:
id val
0 1 12
1 1 13
2 1 19
3 2 20
4 2 30
5 2 40
In [205]: df.groupby(['id'])['val'].agg(lambda x: (x.iloc[-1] - x.iloc[0])/60)
Out[205]:
id
1 0.116667
2 0.333333
Name: val, dtype: float64