実現したいこと
複数条件(日付・月)でgroupby rankした値で新たなカラムを作りたい。
試したこと
python
1data={'day':[20190101,20190101,20190202,20190303,20190111,20190222,20190311],'month':[1,1,2,3,1,2,3],'no':['A','A','A','A','A','A','A']} 2frame=pd.DataFrame(data,columns=['no','day','month']) 3frame=frame.astype(str) 4frame['day'] = pd.to_datetime(frame['day'].astype('str'),errors = 'coerce') 5 6frame['count'] = frame.groupby("no")["day"].rank(ascending=True, method='dense').astype(int) 7#日付ごとでのカウントはできましたが、月を組み合わせたランク付けができずに模索しております。 8 9# no day month count 10#0 A 2019-01-01 1 1 11#1 A 2019-01-01 1 1 12#2 A 2019-02-02 2 3 13#3 A 2019-03-03 3 5 14#4 A 2019-01-11 1 2 15#5 A 2019-02-22 2 4 16#6 A 2019-03-11 3 6
希望のデータカラム(count_day_month)
python
1# no day month count_day_month 2#0 A 2019-01-01 1 1 3#1 A 2019-01-01 1 1 4#2 A 2019-02-02 2 1 5#3 A 2019-03-03 3 1 6#4 A 2019-01-11 1 2 7#5 A 2019-02-22 2 2 8#6 A 2019-03-11 3 2
→月ごとでrank付けを完結させ、同日付のものは同じ値を入れたいです。
お詳しい方ご教授いただければ、幸いです。
何卒宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。