こんにちは。
pandasの機能であるpivot_tableを用いて、
小計を表示する際に、行方向の小計は表示させずに、列方向のみを表示させたいです。
margins=Trueとすると、行、列双方に表示されてしまうため、悩んでいます。
お手数ですが、ご回答いただけると幸いです。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
ベストアンサー
Is it possible to exclude the total row (margins) from styling (subset) in a pandas pivot tableのとおりですが、以下のようにAll
行を削除すればよいかと思います。
PerformanceWarning
出ますが。
Python
1import pandas as pd 2import numpy as np 3 4df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo", 5 "bar", "bar", "bar", "bar"], 6 "B": ["one", "one", "one", "two", "two", 7 "one", "one", "two", "two"], 8 "C": ["small", "large", "large", "small", 9 "small", "large", "small", "small", 10 "large"], 11 "D": [1, 2, 2, 3, 3, 4, 5, 6, 7]}) 12df = df.pivot_table(values='D', index=['A','B'], columns=['C'], aggfunc=np.sum, margins=True) 13df = df.drop(index='All', axis=0) 14print(df) 15""" 16C large small All 17A B 18bar one 4.0 5.0 9 19 two 7.0 6.0 13 20foo one 4.0 1.0 5 21 two NaN 6.0 6 22"""
投稿2022/07/28 08:17
総合スコア38352
0
iloc[:-1]
を指定するなど。
python
1import pandas as pd 2 3titanic = pd.read_csv('titanic.csv') 4 5df = pd.pivot_table(titanic, index='Survived', columns='Pclass', values='Age', 6 margins=True).iloc[:-1] 7 8print(df) 9 10# 11Pclass 1 2 3 All 12Survived 130 43.695312 33.544444 26.555556 30.626179 141 35.368197 25.901566 20.646118 28.343690
投稿2022/07/28 08:14
総合スコア21118
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
早速ありがとうございます。
下記のようにしましたところ、無事、列方向のみの小計を表示することができました。
df2 = df1.pivot_table(index="商談 所有者", columns= "計上Q", values="金額", aggfunc='sum', margins=True, margins_name='合計').iloc[:-1]

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/28 08:39
2022/07/28 09:13
2022/08/04 00:21