从给定的数据帧中按ID和日期排序:
ID Date Value
1 12/10/1998 0
1 04/21/2002 21030
1 08/16/2013 56792
1 09/18/2014 56792
1 09/14/2016 66354
2 06/16/2015 46645
2 12/08/2015 47641
2 12/11/2015 47641
2 04/13/2017 47641
3 07/29/2009 28616
3 03/31/2011 42127
3 03/17/2013 56000
我想获取前3个日期的值,按ID分组:
56792
56792
66354
47641
47641
47641
28616
42127
56000
我只需要值
答案 0 :(得分:3)
您可以同时ID
和Date
来sort_values
,并使用GroupBy.tail
来获取前3个日期的值:
df.Date = pd.to_datetime(df.Date)
df.sort_values(['ID','Date']).groupby('ID').Value.tail(3).to_numpy()
# array([56792, 56792, 66354, 47641, 47641, 47641, 28616, 42127, 56000])