[英]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.