gpt4 book ai didi

pandas - 标记每个 groupby 中的第一个元素

转载 作者:行者123 更新时间:2023-12-01 23:20:31 27 4
gpt4 key购买 nike

我有一个如下所示的数据框

df = pd.DataFrame({'group':[1,1,2,2,2],'time':[1,2,3,4,5],'C':[6,7,8,9,10]})
    group   time    C
0 1 1 6
1 1 2 7
2 2 3 8
3 2 4 9
4 2 5 10

我希望将每个组中的第一个元素(根据时间)标记为 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

我尝试了 groupby 的几种组合,first 但没有达到我想要的效果。

在 Pandas 中有一种优雅的方法吗?

最佳答案

使用duplicated :

df['first_in_group'] = ~df.group.duplicated()
输出:
   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

注意:首先进行排序(如果需要)。

df = df.sort_values(['group', 'time'])

关于pandas - 标记每个 groupby 中的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68168631/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com