python - 使用 groupby pandas 对日期进行排序

标签 python sorting pandas dataframe

我有一个 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})

enter image description here

据此,我想获取每个 ID 的第一个和最后一个日期。

我尝试了以下方法:

df.groupby(['id'])['dates'].agg({'sort':sorted})

enter image description here

问题是我只能看到第一个日期,而不是最后一个日期。我想输出一个只有两个元素的列表:第一个和最后一个日期。而不是整个列表。

最佳答案

简单易行

df.groupby('id').dates.agg({'date ': ['first', 'last']})

关于python - 使用 groupby pandas 对日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42660966/

相关文章:

jquery - 带有 jQ​​uery 的 Python JSON RPC - ServiceRequestNotTranslatable

Python openpyxl 模块说 : AttributeError: 'tuple' object has no attribute 'upper'

android - 如何连接到 kivy-remote-shell?

Python Pandas 使用 Fastparquet 将 CSV 转换为 Parquet

python - Pandas 、分组和计数

Python:正则表达式提取html中任意两个标签之间的文本

c++ - 如何插入到已排序的单链表中?

c# - 双数组的排序列表

c++ - 如何在 C++ 中对包含动态数组的结构数组进行排序?

python - 对所有行中不包括空格的总字符求和 Python