私はこのようなパンダのピボットテーブルを持っています。Pandas index.insertの使い方は?
これに Class1 Class2
Boy Tall 5 3
Short 2 4
Girl Tall 3 3
Short 3 4
、私は次のように合計行を追加したい。(ピボットテーブルを使用せずに「余白」)
Class1 Class2
Boy Tall 5 3
Short 2 4
Girl Tall 3 3
Short 3 4
Total 13 14
私はこれを行うための一つの方法は、ダミーのインデックス(学生を挿入だと思います)を現在の最初のインデックス(Boy & Girl)の前に追加し、groupby(level = 0)を実行して列の合計を計算し、元のデータフレームと新しいサブ行を連結する前にダミーインデックスを削除します。
Class1 Class2
Students Boy Tall 5 3
Short 2 4
Girl Tall 3 3
Short 3 4
Total 13 14
私が書いたコードは、このようなものですが、index.insertステートメントで 'unhashable type'エラーが発生します。私が助けが必要なもう一つの方法は、ダミーインデックスを削除する方法です。私はdocの中にindex.removeのようなものは見当たりません。
df2 = df
df2.index.insert(0,'Students') ## Apparently 'Students' results in 'unhashable type' error
df2 = df2.groupby(level = 0, sort = False).sum()
df2.index.remove(0) ## This is what I made up...Couldn't find how to remove a particular index from multiindex
pd.concat(df, df2)
ドキュメントには次のような記述がありますが、許容できる「アイテム」の良い例は見つかりませんでした。
pandas.Index.insert
Index.insert(loc, item)
Make new Index inserting new item at location. Follows Python list.append semantics for negative values
? –
私の要件の一部は、行の合計を表示しないことです。 pivot_tableマージンを使用して、2つのうちの1つ(つまり、行または列の合計)のみを選択する方法はないようです。 –
ピボットの前にデータフレームをポストして再作成できますか? –