2017-01-07 7 views
7

パンダのデータフレームの値をグループ化し、各グループから最新(日付順)を選択するにはどうすればいいですか?例えばby pandas dataframeそして各グループの最新のものを選択してください

、日付順に並べ替えデータフレーム与えられる:IDや製品によってグルーピング

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 date 
2 220 6647  2014-10-16 
5 826 3380  2015-05-19 
8 901 4555  2014-11-01 

答えて

7

loc

groupbyスライス dfで使用 idxmax
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 
+0

これは美しく動作します。 – Aaron

4

tailをgroupbyとともに使用して、グループの最後のn値を取得することもできます。

df.sort_values('date').groupby('id').tail(1) 

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

私はこれがちょうど日付以上に適用できるので、これが好きです。 – scottlittle

関連する問題