讓我們提議我有一個如下所示的資料透視表:
pd.pivot_table(
data,
columns=['A','B','C'],
values='widgets',
aggfunc='count'
).T
[Column] Count
A B C 1
D 2
E F 3
G 4
H I J 5
K L 6
我想要的是:
A 10 B 3 C 1
D 2
E 7 F 3
G 4
H 11 I 11 J 5
L 6
每個類別的中間總和在最終計數之間。
uj5u.com熱心網友回復:
確保索引級別被命名:
df = pd.DataFrame(
{'Count': [1, 2, 3, 4, 5, 6]},
pd.MultiIndex.from_tuples([
('A', 'B', 'C'),
('A', 'B', 'D'),
('A', 'E', 'F'),
('A', 'E', 'G'),
('H', 'I', 'J'),
('H', 'K', 'L')
], names=['One', 'Two', 'Three'])
)
df
Count
One Two Three
A B C 1
D 2
E F 3
G 4
H I J 5
K L 6
from functools import reduce
import pandas as pd
names = df.index.names
reduce(
pd.DataFrame.join,
[df.groupby(level=names[:i 1]).sum().add_suffix(f'_{names[i]}')
for i in range(df.index.nlevels)]
)
Count_One Count_Two Count_Three
One Two Three
A B C 10 3 1
D 10 3 2
E F 10 7 3
G 10 7 4
H I J 11 5 5
K L 11 6 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454541.html
標籤:熊猫 熊猫-groupby 数据可视化 数据透视表
上一篇:根據匹配將字典中的鍵、值附加到另一個字典。供以后在資料框中使用
下一篇:熊貓用最后一個可用值替換列值
