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