gpt4 book ai didi

python - Pandas groupby 在保留多个聚合的组内进行排序,并使用构面将其可视化

转载 作者:行者123 更新时间:2023-12-02 02:02:21 25 4
gpt4 key购买 nike

我有这个示例数据集

products = ["A", "B", "C", "D"]
stores = ["store1", "store2", "store3"]
n = 30

product_list = [products[i] for i in np.random.randint(0, len(products), n)]
store_list = [stores[i] for i in np.random.randint(0, len(stores), n)]
rating_list = np.random.random(n) * 5
sales_list = np.random.random(n) * 10000

df = pd.DataFrame(
{'store': store_list,
'product': product_list,
'sales': sales_list,
'rating': rating_list})

然后对销售额求和

df_1=df.groupby(['store','product']).agg({'sales':['sum']})
df_1

enter image description here

并在维护商店的同时按最高销售额订购

df_2 = df_1.groupby(level=0, group_keys=False).apply(
lambda x: x.sort_values(('sales', 'sum'), ascending=False))
df_2

enter image description here

如何通过商店进行分面,使生成的可视化效果如下所示?

enter image description here

最佳答案

您应该重置最后一段中的索引:

df_2 = df_1.groupby(level=0, group_keys=False).apply(
lambda x: x.sort_values(('sales', 'sum'), ascending=False)).reset_index()

然后你可以用 seaborn.FacetGrid 进行绘图:

g = sns.FacetGrid(df_2, col = 'store')
g.map(sns.barplot, 'product', 'sales')

plt.show()

enter image description here

关于python - Pandas groupby 在保留多个聚合的组内进行排序,并使用构面将其可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68843256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com