簡體   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