Python为数据框中的每个组的前3个值选择数据

时间:2019-05-23 10:23:58

标签: python pandas dataframe pandas-groupby

从给定的数据帧中按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

我只需要值

1 个答案:

答案 0 :(得分:3)

您可以同时IDDatesort_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])