私はAXLES
列を含むデータフレームを持っています。 AXLES
列には、常に次の値のいずれかがあります。[3, 4, 5, ,6 ,7, 8]
。フィルタを実行し、次にインデックスを変更し、次にgroupby、次に再サンプリングし、最後にデータフレームをアンスタックします(下のコードを参照)。Pandasはリサンプルとアンスタックの後に列を追加します
resamp = df[(df.GVW > 100) & (df.AXLES.isin([3,4,5,6,7,8]))].set_index('TIMESTAMP').groupby('AXLES').resample('M', how='count').CLASS
dfTemp = resamp.unstack(0)
dfTemp.index = [ts.strftime('%b 20%y') for ts in dfTemp.index]
これは私に次のデータフレームを返します。これは問題ありません。
AXLES 4 5 6 7 8
Jul 2016 191 1582 212 183 6
しかし、ここでの問題は次のとおりです。dfWIM.GVW > 100
フィルタリングに私が適用されるため、AXLES
= 3を持つすべての行が除外されています。最終的なデータフレームにこの列を残しておくにはどうすればいいですか?私は(データフレームに追加し、「0」の値を持つ欠落している「3」の列)を以下のように最後のデータフレームを取得しようとしています:
AXLES 3 4 5 6 7 8
Jul 2016 0 191 1582 212 183 6
すべてのフィルタリング後にドロップされた列を維持することができない場合、値が0の[3, 4, 5, 6, 7, 8]
列(見つからない場合)を最終的なデータフレームに追加するにはどうすればよいですか?
ありがとうございます!
元のデータフレームを見ることなく、答えが少し難しいですが、値が100より小さい値を除外している場合、値が0の列はなぜ存在すると思いますか? – pshep123
私は、フィルタリングされたデータを使用して毎月の棒グラフを準備する必要があります。数か月のうちにカラムの1つがドロップされた場合、それがプロット関数を駄目にするので、データフレームのサイズを一定に保つ必要があります。私はすべてのフィルタリングが完了したら、欠落している列でデータフレームを再作成する必要があると思います。 – marillion
私の答えは以下のとおりですか? – pshep123