嗨,我需要得到前四大品牌的平均价格,找出前四大品牌的组合数量,只有三大类。前四名并不是谁有更多的钱,也就是谁拥有更多的产品组合。
这是数据文件:
brand price category
Apple 499.0 phone
Huawei 200.0 phone
Apple 150.0 headphones
Samsung 800.0 phone
Apple 55.0 accesory
xiomi 25.0 accesory
Huawei 140.0 headphones这就是我所需要的结果,以四个品牌的平均价格为指标,以两个小数位数为整数。
phone headphones accesory
brand_1 XXXX XXXX XXXX
brand_2 XXXX XXXX XXXX
brand_3 XXXX XXXX XXXX
brand_4 XXXX XXXX XXXX我是初学者,所以我没有太多的经验,希望你能帮我,谢谢
发布于 2021-09-22 16:41:00
尝试:
# get top 4 brands by size:
top_4 = df.groupby("brand").size().nlargest(4)
# pivot the table, format it and get top_4 brands:
df_out = (
df.pivot_table(
index="brand",
columns="category",
values="price",
aggfunc="mean",
fill_value=0,
)
.apply(lambda x: ["{:.2f}".format(v) for v in x])
.loc[top_4.index]
)
print(df_out)指纹:
category accesory headphones phone
brand
Apple 55.00 150.00 499.00
Huawei 0.00 140.00 200.00
Samsung 0.00 0.00 800.00
xiomi 25.00 0.00 0.00https://stackoverflow.com/questions/69287939
复制相似问题