Python 熊猫:分组和分组
我有一个熊猫数据框,看起来像这样:Python 熊猫:分组和分组,python,python-2.7,pandas,Python,Python 2.7,Pandas,我有一个熊猫数据框,看起来像这样: userid name date 1 name1 2016-06-04 1 name2 2016-06-05 1 name3 2016-06-04 1 name1 2016-06-06 2 name23 2016-06-01 2 name2 2016-06-01 3 nam
userid name date
1 name1 2016-06-04
1 name2 2016-06-05
1 name3 2016-06-04
1 name1 2016-06-06
2 name23 2016-06-01
2 name2 2016-06-01
3 name1 2016-06-03
3 name6 2016-06-03
3 name12 2016-06-03
3 name65 2016-06-04
所以,我只想保留用户的行,直到第一个日期事件,并删除其余的
最终df如下所示:
userid name date
1 name1 2016-06-04
1 name2 2016-06-04
2 name23 2016-06-01
2 name2 2016-06-01
3 name1 2016-06-03
3 name6 2016-06-03
3 name12 2016-06-03
userid int64
name object
time object
时间列中数据点的type()
是一个datetime.date
因此,任务将涉及
根据用户ID进行分组,根据日期进行排序,然后仅保留第一个(/最早)日期的行,您可以首先按列日期对数据框进行排序,然后使用-get-all-rows-where-is-first值:
df = df.sort_values('date')
.groupby('userid')
.apply(lambda x: x[x.date == x.date.iloc[0]])
.reset_index(drop=True)
print (df)
userid name date
0 1 name1 2016-06-04
1 1 name3 2016-06-04
2 2 name23 2016-06-01
3 2 name2 2016-06-01
4 3 name1 2016-06-03
5 3 name6 2016-06-03
6 3 name12 2016-06-03
完美的谢谢:)我正试图在groupby对象上排序:DGlad可以帮助您。天气真好!