実現したいこと
特定の値(最大値)以降のレコードに順位をつけたい
使用データ
python
1import pandas as pd 2import io 3 4data = """ 5SaleDate,UserId,Diff 62017-01-01,47,2 72016-02-04,47,21 82016-07-01,48,42 92017-02-01,49,24 102018-04-01,50,12 112019-05-06,51,32 122017-02-01,48,2 132018-04-01,48,11 142019-05-06,48,6 15""" 16df = pd.read_csv(io.StringIO(data), parse_dates=['SaleDate']) 17df 18 19# SaleDate UserId Diff 20#0 2016-01-01 47 2 21#1 2016-02-04 47 21 22#2 2016-07-01 47 42 23#3 2017-02-01 47 24 24#4 2018-04-01 47 12 25#5 2019-05-06 47 32 26#6 2017-02-01 48 2 27#7 2018-04-01 48 11 28#8 2019-05-06 48 6
希望データ
python
1# SaleDate UserId Diff Rank 2#0 2016-01-01 47 2 0 3#1 2016-02-04 47 21 0 4#2 2016-07-01 47 42 1 5#3 2017-02-01 47 24 2 6#4 2018-04-01 47 12 3 7#5 2019-05-06 47 32 4 8#6 2017-02-01 48 2 0 9#7 2018-04-01 48 11 1 10#8 2019-05-06 48 6 2
→Diffカラムの最大値(42)以降(SaleDate順)に順位をつけたいです。
試したこと
python
1ddf = df.groupby('UserId') 2df = df.loc[ddf['Diff'].idxmax(),:]
→最大値行の抽出はできましたが、これ以降の行を取ることができません。
行き詰まり、困っています。
お詳しい方、ご教授いただきたいです。
何卒よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/12/24 10:32
2019/12/24 10:48
退会済みユーザー
2019/12/25 05:18
2019/12/25 05:56
退会済みユーザー
2019/12/25 06:23