我有一个多索引的DataFrame。FGs是我创建的4个组。
我需要改变生物量(又名BIOMc)的百分比。
要做到这一点,我必须除以每一组中的生物量之和。我不知道如何在多索引DataFrame中做到这一点。
我知道如何才能获得单个组的结果,例如:
workdf.loc['RSH'] / workdf.loc['RSH'].sum()但是,我不知道如何重申(不实际迭代,因为我认为这里没有必要)所有组的过程,也不具体地写FGs的名称。
import pandas as pd
workdf = pd.DataFrame({
'FG': ['RSH', 'RSH', 'RSH', 'RSS', 'RSS', 'SSH', 'SSH', 'SSS', 'SSS', 'SSS'],
'Diet': ['A', 'B', 'C', 'A', 'C', 'B', 'C', 'A', 'B', 'C'],
'BIOMc': [3, 0, 21, 0, 2, 0, 11, 0, 1, 3]
}).set_index(['FG', 'Diet'])
BIOMc
FG Diet
RSH A 3
B 0
C 21
RSS A 0
C 2
SSH B 0
C 11
SSS A 0
B 1
C 3发布于 2022-03-19 19:43:05
使用groupby+transform
df['BIOMc']/df.groupby(level='FG')['BIOMc'].transform('sum')https://stackoverflow.com/questions/71541427
复制相似问题