TJE*_*TJE 1 python slice pandas
这是一个更大项目的一部分,但我已将问题分解为多个步骤,所以这是第一步。采用 Pandas 数据框,如下所示:
index | user time
---------------------
0 F 0
1 T 0
2 T 0
3 T 1
4 B 1
5 K 2
6 J 2
7 T 3
8 J 4
9 B 4
Run Code Online (Sandbox Code Playgroud)
对于每个唯一用户,我可以在某些条件下提取“时间”列中的值之间的差异吗?
例如,用户 J 有两个实例,这两个实例之间的“时间”差异是 2。我可以提取这两行之间的差异 2 吗?然后,如果该用户再次出现,请提取该行与数据框中该用户之前出现之间的差异?
我相信需要DataFrameGroupBy.diff:
df['new'] = df.groupby('user')['time'].diff()
print (df)
user time new
0 F 0 NaN
1 T 0 NaN
2 T 0 0.0
3 T 1 1.0
4 B 1 NaN
5 K 2 NaN
6 J 2 NaN
7 T 3 2.0
8 J 4 2.0
9 B 4 3.0
Run Code Online (Sandbox Code Playgroud)