1
Iインデックスと列の両方のために、マルチ・インデックスであり、次のピボットテーブルを有する:ここパイソンパンダピボットテーブル - マルチインデックス列に計算された列を追加
Category HF DA
tafp tap tw tafp tap tafp
ATTR EL
attr1 1.0 10 25 15 100 150 50
attr2 2.0 0 0 0 40 70 30
3.0 20 50 30 0 0 0
attr3 2.0 0 0 0 0 0 0
本の辞書ですピボットテーブル(値が少し異なっているが、それは問題ではありません):
{
('HF', 'tafp'): {('attr1', '1.0'): 10, ('attr2', '2.0'): 100, ('attr3','2.0'): 0, ('attr4', '2.0'): 0, ('attr2', '3.0'): 71},
('HF', 'tap'): {('attr1', '1.0'): 30, ('attr2', '2.0'): 350, ('attr3', '2.0'): 0, ('attr4', '2.0'): 0, ('attr2', '3.0'): 1042},
('HF', 'tw'): {('attr1', '1.0'): 20, ('attr2', '2.0'): 250, ('attr3', '2.0'): 0, ('attr4', '2.0'): 0, ('attr2', '3.0'): 971},
('DA', 'tafp'): {('attr1', '1.0'): 0, ('attr2', '2.0'): 435, ('attr3', '2.0'): 0, ('attr4', '2.0'): 0, ('attr2', '3.0'): 0},
('DA', 'tap'): {('attr1', '1.0'): 0, ('attr2', '2.0'): 635, ('attr3', '2.0'): 0, ('attr4', '2.0'): 0, ('attr2', '3.0'): 0},
('DA', 'tw'): {('attr1', '1.0'): 0, ('attr2', '2.0'): 200, ('attr3', '2.0'): 0, ('attr4', '2.0'): 0, ('attr2', '3.0'): 0}
}
私が最後に取得したい何を、以下の通りです:
Category HF DA
tafp/tap tw tafp/tap tafp
ATTR EL
attr1 1.0 0.67 15 0.67 50
attr2 2.0 0 0 0.57 30
3.0 0.67 30 0 0
attr3 2.0 0 0 0 0
だから、tafp/tapのパーセンテージを取得し、この計算された列を保持する、つまり元の列を削除するだけです。
誰かが私がこれをどのように達成できるか考えていますか?
何か助けていただければ幸いです。
はどうもありがとうございました!魅力のように動作します。あなたはスタックとアンスタックの 'レベル'引数の使用を明確にすることができますか?私はそれが何を意味するのか理解していますが、どうしてスタックを解除するときにレベル= 2を使用しますか? –
( 'HF'、 'DA')が行インデックスの3番目(インデックス2)の列になっているため、デフォルトであるため削除します。 –