简体   繁体   English

按组识别 pandas 数据帧中的第一个条目

[英]Identify first entry by group in pandas data frame

I have data like this我有这样的数据

在此处输入图像描述

I wish to generate this:我希望生成这个:

在此处输入图像描述

How can I do this using Pandas?如何使用 Pandas 做到这一点? I know I need to group by id and order by date somehow... Thanks for your help in advance我知道我需要按 id 分组并按日期排序...提前感谢您的帮助

In [2]: df = pd.DataFrame({'id' : [1]*3 + [2]*3 + [3],
   ...: 'date' : ['01/02/2020', '02/02/2020', '03/02/2020', '01/02/2020', '02/02/2020', '03/02/2020', '04/05/2020']})
   ...: df
Out[2]: 
   id        date
0   1  01/02/2020
1   1  02/02/2020
2   1  03/02/2020
3   2  01/02/2020
4   2  02/02/2020
5   2  03/02/2020
6   3  04/05/2020

In [3]: df['Entry'] = ''
   ...: df.loc[df.date.isin(df.groupby("id").agg(min).date), 'Entry'] = 'First'
   ...: df
Out[3]: 
   id        date  Entry
0   1  01/02/2020  First
1   1  02/02/2020       
2   1  03/02/2020       
3   2  01/02/2020  First
4   2  02/02/2020       
5   2  03/02/2020       
6   3  04/05/2020  First

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

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