1. ホーム
  2. python

[解決済み] pandas のデータフレームでグループ化し、各グループで最新のものを選択する。

2023-01-02 15:28:48

質問

pandas dataframeの値をグループ化し、各グループから最新(日付別)の値を選択する方法は?

例えば、日付でソートされたdataframeが与えられたとします。

    id     product   date
0   220    6647     2014-09-01 
1   220    6647     2014-09-03 
2   220    6647     2014-10-16
3   826    3380     2014-11-11
4   826    3380     2014-12-09
5   826    3380     2015-05-19
6   901    4555     2014-09-01
7   901    4555     2014-10-05
8   901    4555     2014-11-01

idまたはproductでグループ化し、最も早いものを選択する。

    id     product   date
2   220    6647     2014-10-16
5   826    3380     2015-05-19
8   901    4555     2014-11-01

どのように解決するのですか?

使用 idxmaxgroupby で、スライス dfloc

df.loc[df.groupby('id').date.idxmax()]

    id  product       date
2  220     6647 2014-10-16
5  826     3380 2015-05-19
8  901     4555 2014-11-01