如何 select 数据框中每组的最旧记录?使用 python

how to select oldest record of each group in a dataframe? using python

例如,数据框如下所示:

         date  price ticker  volume
0   2018-01-01  1.323     AI    2000
1   2018-01-02  1.525     AI    1500
2   2018-01-03  1.045     AI     500
3   2018-01-04  1.845     AI     600
4   2018-01-05  1.045     AI     500
5   2018-01-02  1.446    BOC     550
6   2018-01-03  2.110    BOC    3201
7   2018-01-04  2.150    BOC    5200
8   2018-01-05  2.810    BOC    1980
9   2018-01-03  5.199    CAT    2000
10  2018-01-06  4.980    CAT     450
11  2018-01-07  4.990    CAT    3000

我要问一个很基础的问题,请多多包涵 如何选择最旧日期的前两个代码,以获得如下所示的数据框

         date  price ticker  volume
0   2018-01-01  1.323     AI    2000
1   2018-01-02  1.525     AI    1500
5   2018-01-01  1.446    BOC     550
6   2018-01-02  2.110    BOC    3201
9   2018-01-01  5.199    CAT    2000
10  2018-01-02  4.980    CAT     450

在 Pandas 上,您可以使用 groupby 命令对值进行分组。此外,通过使用 head 命令和 groupby 命令,您可以 select 组中的前两个值。因此,在您的情况下,要将前两个代码分组,命令将是:

df.sort_values('date').groupby('ticker').head(2)