使用groupby pandas对日期进行排序

Lui*_*uez 3 python sorting dataframe pandas

我有一个pandas DataFrame,其中包含以下格式的日期:yyyy-mm-dd:

id1 = ['2015-09-23', '2014-07-08', '2015-07-30', '2008-09-26',
       '2009-07-13', '2009-09-28', '2014-04-10', '2009-06-03']

id2 = ['2011-04-15', '2015-11-30', '2015-06-15', '2015-12-01',
       '2015-12-23', '2009-01-14', '2009-06-17', '2009-08-07']

id3 = ['2010-01-26', '2010-03-16', '2011-11-23', '2012-01-31',
       '2012-06-08', '2012-10-26', '2013-01-07', '2013-11-12']

df = pd.DataFrame({'dates':id1 + id2 + id3,'id':['id1']*8+['id2']*8+['id3']*8})
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

由此,我想得到每个id的第一个和最后一个日期.

我尝试了以下方法:

df.groupby(['id'])['dates'].agg({'sort':sorted})
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

问题是我只能看到第一个日期而不是最后一个日期.我希望输出一个只包含两个元素的列表:第一个和最后一个日期.而不是整个列表.

ℕʘʘ*_*ḆḽḘ 9

十分简单

df.groupby('id').dates.agg({'date ': ['first', 'last']})
Run Code Online (Sandbox Code Playgroud)