我有一个如下所示的Pandas数据框:
touch_id sequence_id timestamp_event x y
-----------------------------------------------------------
1 1 500 20 20
1 2 600 40 40
1 2 700 30 33
2 1 880 33 0
2 1 900 22 22
3 1 910 1 1
3 1 920 10 15
3 2 950 15 15
在此数据框上,我应用以下内容:
df= df_touch.groupby(["touch_id", "sequence_id"]).agg({
'timestamp_event': 'mean',
'x': 'mean',
'y': 'mean',
}).reset_index()
touch_id sequence_id timestamp_event x y
-----------------------------------------------------------
1 1 500 20 20
1 2 650 35 36.5
2 1 890 27.5 11
3 1 915 5.5 8
3 2 950 15 15
现在,我想增加一列multi_seq
,当对于同一touch_id
存在多个不同的sequence_id
时,该列为true。这意味着结果表应该是
touch_id sequence_id timestamp_event x y multi_seq
----------------------------------------------------------------------------
1 1 500 20 20 True
1 2 650 35 36.5 True
2 1 890 27.5 11 False
3 1 915 5.5 8 True
3 2 950 15 15 True
如何创建此附加列multi_seq
?
答案 0 :(得分:1)
IIUC,transform
+ nunique
df['multi_seq'] = df.groupby('touch_id').sequence_id.transform('nunique') > 1
0 True
1 True
2 False
3 True
4 True
Name: sequence_id, dtype: bool