数据帧groupby.diff()感到困惑

时间:2018-06-01 09:23:49

标签: python pandas

我刚读过这个问题:  In a Pandas dataframe, how can I extract the difference between the values on separate rows within the same column, conditional on a second column?

我完全被答案困惑了。这是怎么回事???

我的意思是,当我groupby('user')不应该结果时,按用户分组? 无论我使用什么功能(平均值,总和等),我都希望得到这样的结果:

aa=pd.DataFrame([{'user':'F','time':0},
             {'user':'T','time':0},
            {'user':'T','time':0},
            {'user':'T','time':1},
            {'user':'B','time':1},
            {'user':'K','time':2},
            {'user':'J','time':2},
            {'user':'T','time':3},
            {'user':'J','time':4},
            {'user':'B','time':4}])
aa2=aa.groupby('user')['time'].sum()
print(aa2)

user
B    5
F    0
J    6
K    2
T    4
Name: time, dtype: int64

diff()如何使用前一个在每个组中返回每行的差异?

aa['diff']=aa.groupby('user')['time'].diff()
print(aa)
   time user  diff
0     0    F   NaN
1     0    T   NaN
2     0    T   0.0
3     1    T   1.0
4     1    B   NaN
5     2    K   NaN
6     2    J   NaN
7     3    T   2.0
8     4    J   2.0
9     4    B   3.0

更重要的是,结果如何不是“用户”值的唯一列表? 我发现许多使用groupby.diff()的答案,但没有一个详细解释它。对我来说非常有用,并希望其他人能够理解它背后的机制。感谢。

0 个答案:

没有答案