我有一个 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})
据此,我想获取每个 ID 的第一个和最后一个日期。
我尝试了以下方法:
df.groupby(['id'])['dates'].agg({'sort':sorted})
问题是我只能看到第一个日期,而不是最后一个日期。我想输出一个只有两个元素的列表:第一个和最后一个日期。而不是整个列表。
最佳答案
简单易行
df.groupby('id').dates.agg({'date ': ['first', 'last']})
关于python - 使用 groupby pandas 对日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42660966/