GZ-*_*GZ- 2 numpy list dataframe pandas pandas-groupby
我有一个如下所示的数据框
df = pd.DataFrame({'group':[1,1,2,2,2],'time':[1,2,3,4,5],'C':[6,7,8,9,10]})
Run Code Online (Sandbox Code Playgroud)
group time C
0 1 1 6
1 1 2 7
2 2 3 8
3 2 4 9
4 2 5 10
Run Code Online (Sandbox Code Playgroud)
并且我希望将每个组中的第一个元素(就时间而言)标记为 True,即:
group time C first_in_group
0 1 1 6 True
1 1 2 7 False
2 2 3 8 True
3 2 4 9 False
4 2 5 10 False
Run Code Online (Sandbox Code Playgroud)
我尝试了 的几种组合groupby,first但没有达到我想要的效果。
在 Pandas 中是否有一种优雅的方式来做到这一点?
duplicated:df['first_in_group'] = ~df.group.duplicated()
Run Code Online (Sandbox Code Playgroud)
group time C first_in_group
0 1 1 6 True
1 1 2 7 False
2 2 3 8 True
3 2 4 9 False
4 2 5 10 False
Run Code Online (Sandbox Code Playgroud)
注意:首先进行排序(如果需要)。
df = df.sort_values(['group', 'time'])
Run Code Online (Sandbox Code Playgroud)