gpt4 book ai didi

Python pandas groupby 在多列上聚合,然后旋转

转载 作者:IT老高 更新时间:2023-10-28 20:47:07 24 4
gpt4 key购买 nike

在 Python 中,我有一个类似于以下内容的 pandas DataFrame:

Item | shop1 | shop2 | shop3 | Category
------------------------------------
Shoes| 45 | 50 | 53 | Clothes
TV | 200 | 300 | 250 | Technology
Book | 20 | 17 | 21 | Books
phone| 300 | 350 | 400 | Technology

其中 shop1、shop2 和 shop3 是不同商店中每件商品的成本。现在,我需要在一些数据清理之后返回一个 DataFrame,就像这样:

Category (index)| size| sum| mean | std
----------------------------------------

其中 size 是每个 Category 中的项目数,sum、mean 和 std 与应用于 3 个商店的相同函数相关。如何使用 split-apply-combine 模式(groupby、aggregate、apply...)进行这些操作?

有人可以帮帮我吗?这个我快疯了...谢谢!

最佳答案

df.groupby('Category').agg({'Item':'size','shop1':['sum','mean','std'],'shop2':['sum','mean','std'],'shop3':['sum','mean','std']})

或者,如果您希望在所有商店都使用它:

df1 = df.set_index(['Item','Category']).stack().reset_index().rename(columns={'level_2':'Shops',0:'costs'})
df1.groupby('Category').agg({'Item':'size','costs':['sum','mean','std']})

关于Python pandas groupby 在多列上聚合,然后旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43172970/

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