前提
Dataframeのデータを10分単位で年代別に集計したい
実現したいこと
・データを10分単位で集計する
・同じdailyIDは10分ごとに一回カウント
・集計は年代別
発生している問題・エラーメッセージ
年代別に集計する前に、10分毎に一意のdailyIDをカウント出来るか試したところ、10分間のデータ数になってしまいました。
該当のソースコード
Python
1df = pd.DataFrame({ 2 'year' : [2021, 2021, 2021, 2021, 2021, 2021,2021,2021,2021,2021], 3 'month' : [8,8,8,8,8,8,8,8,8,8], 4 'day' : [1,1,1,1,1,1,1,1,1,1,], 5 'hour': [0,0,0,0,0,0,0,0,0,0], 6 'minute' : [1,1,2,4,7,17,2,4,9,16], 7 'dailyid': ['A', 'D','A', 'B','A', 'E','C','A', 'E','C'], 8 'age': ['10-19', '20-29','10-19', '30-39','10-19', '10-19','30-39','10-19','10-19','30-39'] 9 },) 10 11#datatime作成 12df['日付'] = pd.to_datetime(df['year'].astype(str)+'-'+ df['month'].astype(str)+'-'+ df['day'].astype(str)+' '+ df['hour'].astype(str)+':'+ df['minute'].astype(str)) 13#必要ない列削除 14df = df.drop(columns=['year','month','day','hour','minute']) 15#列入れ替え 16df2 = df.loc[:,['日付', 'dailyid']] 17#日付でグループ 18df2.groupby(['日付'])['dailyid'].unique() 19#10分毎にカウント 20df2.groupby(pd.Grouper(key='日付', freq='10min')).count()
補足情報(FW/ツールのバージョンなど)
[現状]
|日付|dailyID|
|2021-08-01 00:00:00|8|
|2021-08-01 00:10:00|2|
↓
[理想]
|日付|dailyID|
|2021-08-01 00:00:00|3|
|2021-08-01 00:10:00|2|
[最終目標]
|日付|10-19|20-29|30-39|
|2021-08-01 00:00:00|2|1|2|
|2021-08-01 00:10:00|1|0|1|
Python初心者のため、分かりにくく大変恐縮なのですが、10分毎に一意のIDのカウント方法を教えて下さい。出来れば年代別のカウント方法までご教授いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/17 15:40
2022/11/22 13:14