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