求占比,累计占比

203 阅读1分钟
import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({
    'Brand': ['A', 'B', 'C', 'A', 'B', 'C'],
    'Amount': [100, 200, 150, 300, 250, 200]
})

# 计算每个品牌的占比
df_brand = df.groupby('Brand')['Amount'].sum().reset_index()
display(df_brand)
# 对品牌按照额降序排序df_brand["Amount"]
df_brand["zb"] = df_brand["Amount"]/df_brand["Amount"].sum()
df_brand=df_brand.sort_values(by="zb",ascending=False)
df_brand["zblj"] = df_brand["zb"].cumsum()
display(df_brand)
# 计算累计排序小于等于当前品牌的额占比
df=pd.merge(df,df_brand[["Brand","zb","zblj"]],on="Brand",how="left")

# 输出结果
print(df)

输出结果

1715242813854.png