我正在尝试使用每个多指标的总销售额来计算销售额的百分比。我的数据框是这样的:
local categoria fabricante tipo consistencia peso pacote ordem vendas_kg
AREA I SABAO ASATP DILUIDO LIQUIDO 1501 A 2000g PLASTICO 1 10
AREA I SABAO TEPOS DILUIDO LIQUIDO 1501 A 2000g PLASTICO 1 20
AREA I SABAO ASATP CAPSULA LIQUIDO 1501 A 2000g PLASTICO 1 20
AREA I SABAO TEPOS CAPSULA LIQUIDO 1501 A 2000g PLASTICO 1 30
所以我计算索引中每个唯一元组的总销售额并存储为总数据框。我的目标是计算每个 ['fabricante'] 市场份额,但现在我的目标是 TEPOS。` 在旋转我的 DataFrame 后变成这样:
sum sum
vendas_kg vendas_kg
fabricante ASATP TEPOS Total
local tipo ordem
AREA I DILUIDO 1 10 20 30
2 20 30 50
CAPSULA 1 10 20 30
2 20 30 50
AREA II DILUIDO 1 10 15 25
2 20 25 45
CAPSULA 1 25 35 55
2 20 30 50
我用来计算总数并使用多索引创建数据框的代码是:
#creating a sample from all data
a = df.sample(n=50)
#creating a multiindex dataframe
temp_df = pd.pivot_table(a.fillna(value=0), index=['tipo','local','pacote'],columns=['fabricante'], values=['vendas_kg'], fill_value=0, aggfunc=[np.sum])
total = temp_df.sum(level=1, axis=1)
#calculating the marketshare for Tepos
temp_df[('sum','vendas_kg','TEPOS')] = temp_df[('sum','vendas_kg','TEPOS')] / temp_df.sum(level=1, axis=1)
有两件事正在发生,如果我使用所有列,所有数据都变为 NaN,如果我使用上面的代码。
弑天下
相关分类