我有一个数据框,其中我有一个2或3级的多索引,我想重新塑造它作为Excel中通常的数据透视表,以便能够做'内部'总计(见图)。x1c 0d1x
我尝试使用df.pivot_table()
和通过.groupby()
的多索引,但没有任何结论
我只有数据框
下面是代码
df = pd.DataFrame({'Products': ['Products A','Products A',
'Products A','Products B', 'Products B',
'Products A', 'Products B', 'Products A'],
'Sub Products': ['Phone A','Phone B',
'Laptop B','Phone B', 'Laptop
B','Phone A','Phone B','Laptop A'],
'Color' : ['Green', 'Blue','Red',
'Red','Red','Blue','Green','Blue']})
df.groupby(['Products','Sub Products','Color' ]).count()
如果你有任何想法,这将是超级有帮助的!谢谢。
1条答案
按热度按时间xwbd5t1u1#
在Pandas中,通常不会将此聚合信息作为同一分组DataFrame的一部分,而是在之后使用单独的命令获取,例如:
grand_total = df.sum()
请注意,您在问题中提供的数据并不能完全生成您的图像。数字不同,一些A/B标签也不一致。下面我编辑了您提供的代码,重现了与您的图像匹配的内容,假设您提供的示例数据的每一行都是一个“单元”。
这将为您提供所需的信息......但是,从您的注解中可以看出,您似乎只需要一种特定的显示格式。使用下面的代码可以实现这一点,但它会丢失多索引数据框的实际组织结构:
产量:
更好的是,下面是上面的递归版本: