![](/img/trans.png)
[英]Calculating subtotals in pandas pivot_table with MultiIndex
[英]Pandas Pivot Table - Adding Subtotals to Multiindex Table
我有一個結構如下的數據表:
姓名 | 卡片 | 付款編號 | 數量 |
---|---|---|---|
約翰·多伊 | t077 | 7312637 | 54 |
約翰·多伊 | t077 | 1323131 | 34 |
簡·多伊 | s044 | 1231321 | 13 |
約翰·多伊 | j544 | 4634564 | 53 |
我想要實現的輸出是具有類似格式的數據透視表:
姓名 | 交易數量 | 和 |
---|---|---|
約翰·多伊 | 3 | 141 |
--- t077 | 2 | 88 |
--- j544 | 1 | 53 |
簡·多伊 | 1 | 13 |
--- s044 | 1 | 13 |
請記住:
我嘗試使用pandas pivot_table,但是我找不到一種方法來按我想要的方式構造數據(包括每個名稱的小計),我只能使用名稱和卡片分組
pd.pivot_table(df, values='Amount', index=['Name','Card'], aggfunc=(np.sum, len))
對不起,桌子上的格式很差,我的降價技能非常有限。
對此有什么幫助嗎?
數據透視表是一個很好的方法,試試:
table = pd.pivot_table(
df,
values=['Amount'],
index=['Name', 'Card'],
aggfunc=['count', 'sum'],
)
# Adds subtotals, and sorts:
pd.concat([
d.append(d.sum().rename((k, 'Total')))
for k, d in table.groupby(level=0)
]).sort_index(ascending=[False, True])
輸出:
count sum
Amount Amount
Name Card
Joe Doe Total 3 141
j544 1 53
t077 2 88
Jane Doe Total 1 13
s044 1 13
小計參考: 鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.