如何使用 Pandas 将以下数据按月分组:
17/1/2001 800
7/1/2001 1300
2/1/2001 400
1/1/2001 200
25/3/2001 1800
8/3/2001 1300
然后具有以下输出,其中包含该月的第一天和最后一天以及相应的第一个和最后一个值:
First Last First Last
1/1/2001 17/1/2001 200 800
8/3/2001 25/3/2001 1300 1800
谢谢
最佳答案
试试这个:
In [102]: res = df.sort_values('date').groupby(df.date.dt.month).agg(['first','last'])
In [104]: res.columns = ['date_first', 'date_last', 'first', 'last']
In [105]: res
Out[105]:
date_first date_last first last
date
1 2001-01-01 2001-01-17 200 800
3 2001-03-08 2001-03-25 1300 1800
或
min
, max
取决于你想要什么:In [95]: res = df.groupby(df.date.dt.month).agg(['min','max'])
In [96]: res.columns = ['date_min', 'date_max', 'min', 'max']
In [97]: res
Out[97]:
date_min date_max min max
date
1 2001-01-01 2001-01-17 200 1300
3 2001-03-08 2001-03-25 1300 1800
关于python - 使用 Pandas 根据值按日期对数据进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37690859/