パンダに次のデータフレームがあります
date prod hourly_bucket tank trans flag
01-01-2019 TP 05:00:00-06:00:00 2 Preset Peak
01-01-2019 TP 05:00:00-06:00:00 2 Preset Peak
01-01-2019 TP 05:00:00-06:00:00 2 Non Preset Peak
02-01-2019 TP 05:00:00-06:00:00 2 Preset Lean
02-01-2019 TP 05:00:00-06:00:00 2 Preset Lean
02-01-2019 TP 05:00:00-06:00:00 2 Non Preset Lean
私が望むデータフレームは、日レベルとタンクレベルでの集計でありPreset,Non-Preset
、Lean and Peak
時間単位のトランザクション数をカウントします。
date tank Lean_Non_Preset Lean_Preset Peak_Non_Preset Peak_Preset
01-01-2019 2 1 2 1 2
私はパンダでフォローしています
lean_peak_preset_cnt = df.pivot_table(index=['date','tank'], columns=['flag'],values=['trans'],aggfunc='count').reset_index()
しかし、それは私に必要な解決策を与えません
'trans'
パラメータに追加してから、および:を使用して列をcolumns
フラット化MultiIndex
します。map
join
lean_peak_preset_cnt = df.pivot_table(index=['date','tank'],
columns=['flag','trans'],
aggfunc='size',
fill_value=0)
lean_peak_preset_cnt.columns = lean_peak_preset_cnt.columns.map('_'.join)
lean_peak_preset_cnt = lean_peak_preset_cnt.reset_index()
print (lean_peak_preset_cnt)
date tank Lean_No Preset Lean_Preset Peak_Non Preset Peak_Preset
0 01-01-2019 2 0 0 1 2
1 02-01-2019 2 1 2 0 0
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加