如何 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)
例如,数据框如下所示:
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)