Skip to main content
 首页 » 编程设计

python之如何在 pandas 数据框中使用 groupby 来获取以下数据的平均值

2025年05月04日17TianFang

我的数据如下,数据框中的值是数量,而“红色”、“黄色”、“绿色”是类别

items  place     red     green   yellow   
a      VA         1       7       9 
b      VA         3       0       19 
c      VA         5       1        0 
d      VA         11      3        4 
e      VA         2       2        1 
a      NJ         0       0        3 
b      NJ         3       0        9 
c      NJ         2       4        0 
d      NJ         0       5        6 
e      NJ         2       7        1 
a      MO         0       0        5 
b      MO         1       0        4 
c      MO         1       4        0 
d      MO         0       0        5 
e      MO         1       7        1 

对于每个地点类别组合,我想计算所有 5 个项目(a、b、c、d、e)的这些数量的平均值,

category  place  Avg_quantity 
red        VA     .. 
green      VA .   .. 
yellow     VA     .. 
 red       NJ     .. 
green      NJ     .. 
yellow     NJ     .. 
 red       MO     .. 
green      MO     .. 
yellow     MO     .. 

请您参考如下方法:

你可以做 groupby mean 然后 melt

df.groupby('place')[['red','green','yellow']].mean().reset_index().melt('place') 
Out[576]:  
  place variable  value 
0    MO      red    0.6 
1    NJ      red    1.4 
2    VA      red    4.4 
3    MO    green    2.2 
4    NJ    green    3.2 
5    VA    green    2.6 
6    MO   yellow    3.0 
7    NJ   yellow    3.8 
8    VA   yellow    6.6