私は彼のようなデータセットを持っています:
ID date
1 O1-01-2012
1 05-02-2012
1 25-06-2013
1 14-12-2013
1 10-04-2014
2 19-05-2012
2 07-08-2014
2 10-09-2014
2 27-11-2015
2 01-12-2015
3 15-04-2013
3 17-05-2015
3 22-05-2015
3 30-10-2016
3 02-11-2016
Pythonを使用していますが、IDごとに最後の3つの日付を選択したいと思います。これが私が欲しいデータセットです:
ID date
1 25-06-2013
1 14-12-2013
1 10-04-2014
2 10-09-2014
2 27-11-2015
2 01-12-2015
3 22-05-2015
3 30-10-2016
3 02-11-2016
このコードを使用して、各IDの最後の日付を選択しました。
df_2=df.sort_values(by=['date']).drop_duplicates(subset='ID',keep='last')
しかし、どうすれば複数の日付を選択できますか(たとえば、最後の3つの日付、または最後の4つの日付など)?
次の方法を使用してgroupby
、tail
各グループから最後の2つのアイテムを取得できます。
import pandas as pd
df = pd.DataFrame({'ID':[1,1,1,2,2,2,3,3,3],'value':['A','B','C','D','E','F','G','H','I']})
df2 = df.groupby('ID').tail(2)
print(df2)
出力:
ID value
1 1 B
2 1 C
4 2 E
5 2 F
7 3 H
8 3 I
簡単にするために、他の(すでにソートされている)データをビルドに使用したことに注意してくださいdf
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加