我一直面临以下问题。我有一个带有多个索引的数据框(这里有三个):
df = pd.DataFrame(np.random.randint(2, 8, size = (8, 1)))
df.index = pd.MultiIndex.from_tuples([(1990, 'Women','type_A'), (1990, 'Women','type_B'),(1990, 'Men','type_A'), (1990, 'Men','type_B'),
(1991, 'Women','type_A'), (1991, 'Women','type_B'),(1991, 'Men','type_A'), (1991, 'Men','type_B')])
df.index.names = ['Year', 'Gender','Type']
df.columns = ['Total']
看起来像:
Total
Year Gender Type
1990 Women type_A 5
type_B 7
Men type_A 6
type_B 2
1991 Women type_A 2
type_B 6
Men type_A 3
type_B 5
我一直在尝试按Type
计算每个Gender
和Year
的份额,但我没有找到任何有关SOF的明确答案。在一天结束时,我需要获得以下df:
Share
Year Gender Type
1990 Women type_A 0.4166
type_B 0.5833
Men type_A 0.7500
type_B 0.2500
1991 Women type_A 0.2500
type_B 0.7500
Men type_A 0.3750
type_B 0.6250
通常情况下,我会使用div
函数来完成它,但它似乎不适用于多个索引。有人遇到过类似的情况吗?提前致谢 !