繁体   English   中英

从特定分组的列数据中过滤第一行

[英]Filter first row from specific grouped coulmn data

数据:

df = pd.DataFrame({'name':['Jane','Jane','Mike','Mike','Jane','Jane','Jane',
                           'Mike','Mike','Jane','Jane','Jane'],
                   'ctg':['A','P','C','B','B','C','B','E','G','L','M','X']})

预期输出:

姓名 ctg
一个
大号

我是 python 新手,我想制作新的 Dataframe,其中只包含每个“Jane”名字的第一行。 你能请任何人帮助我吗?

您可以在带有掩码的自定义组上使用GroupBy.first

mask = df['name'].eq('Jane')

out = (df[mask]  # keep only Jane
        # group by consecutive names
       .groupby(df['name'].ne(df['name'].shift()).cumsum(), as_index=False)
       .first()  # first row of each group
      )

输出:

   name ctg
0  Jane   A
1  Jane   B
2  Jane   L

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM