熊猫-如何对不同的列进行分组以计算各组的平均值?

Lostsoul

我无法在线找到解决方案,所以我想知道是否有人有任何想法。

我有3列,一个数值('value)和2个分类列('fruits'和'country')。我想为每种分类列组合计算平均值和数字列的总和。

这是我可以做的:

df = pd.DataFrame({'value':[34, 65, 65, 34, 53, 23, 54, 23, 65, 43, 23, 34, 54],'value1':[54, 45, 23, 43, 66, 12, 87, 34, 54, 23, 65, 34, 76], 'fruit': ['Plum', 'Apple', 'Orange', 'Pear', 'Grape', 'Apple', 'Orange', 'Banana', 'Orange', 'Grape', 'Apple', 'Banana', 'Tomato'], 'country': ['USA', 'USA', 'USA', 'UK', 'UK', 'UK', 'CANADA', 'CANADA', 'CANADA', 'USA', 'USA', 'UK', 'USA']})[['value', 'fruit', 'country']]
# print(df)

print(df.groupby(['fruit']).mean()) #sum,etc work great.
            value
fruit            
Apple   37.000000
Banana  28.500000
Grape   48.000000
Orange  61.333333
Pear    34.000000
Plum    34.000000
Tomato  54.000000

它适用于一列,但我想做的是:

  1. value和value2的均值(我想了解如何基于分组依据进行单个或多个计算)。
  2. 我不仅要按水果分组,而且要对水果/国家/地区进行组合,以便在英国,美国和加拿大的价值/价值1个葡萄的平均值。

我对如何在groupby中合并多列并进行预突变感到困惑。

这是我失败的尝试-有关如何执行此操作或让我知道什么命令可以执行此操作的任何建议,我将进行研究。

from itertools import permutations, combinations

perms = [perm for perm in permutations(df[['fruit', 'country']])]
print(perms) #doesn't work, only results in permutations of words fruit/country so 2 sets.
# [('fruit', 'country'), ('country', 'fruit')]

#trying to create combinations using combinations in itertools
g = df.groupby('fruit').apply(lambda x: 
      pd.Series(list(combinations(x.country, 2))))

df = pd.DataFrame(g.apply(list).tolist(), columns=['country', 'fruit'])
df
#not what I want either this is a combination I was looking for.

# country   fruit
# 0 USA UK
# 1 USA USA
# 2 UK  USA
# 3 CANADA  UK
# 4 UK  USA
# 5 USA CANADA
# 6 USA CANADA
# 7 CANADA  CANADA
Mayank porwal

你要这个:

案例1:两个GROUPBY一列,平均valuevalue1

   In [1018]: df.groupby('fruit').agg({'value': 'mean', 'value1': 'mean'}).reset_index()
Out[1018]: 
    fruit      value     value1
0   Apple  37.000000  40.666667
1  Banana  28.500000  34.000000
2   Grape  48.000000  44.500000
3  Orange  61.333333  54.666667
4    Pear  34.000000  43.000000
5    Plum  34.000000  54.000000
6  Tomato  54.000000  76.000000

情况2:对多列进行分组并进行计算:

In [1017]: df.groupby(['fruit','country']).agg({'value': 'mean', 'value1': 'mean'}).reset_index()
Out[1017]: 
     fruit country  value  value1
0    Apple      UK   23.0    12.0
1    Apple     USA   44.0    55.0
2   Banana  CANADA   23.0    34.0
3   Banana      UK   34.0    34.0
4    Grape      UK   53.0    66.0
5    Grape     USA   43.0    23.0
6   Orange  CANADA   59.5    70.5
7   Orange     USA   65.0    23.0
8     Pear      UK   34.0    43.0
9     Plum     USA   34.0    54.0
10  Tomato     USA   54.0    76.0

根据OP的评论进行更新:

In [1039]: res =  df.groupby(['fruit','country']).agg({'value': 'mean', 'value1': 'mean'}).reset_index()

In [1041]: res['total'] = res.value + res.value1

In [1042]: res
Out[1042]: 
     fruit country  value  value1  total
0    Apple      UK   23.0    12.0   35.0
1    Apple     USA   44.0    55.0   99.0
2   Banana  CANADA   23.0    34.0   57.0
3   Banana      UK   34.0    34.0   68.0
4    Grape      UK   53.0    66.0  119.0
5    Grape     USA   43.0    23.0   66.0
6   Orange  CANADA   59.5    70.5  130.0
7   Orange     USA   65.0    23.0   88.0
8     Pear      UK   34.0    43.0   77.0
9     Plum     USA   34.0    54.0   88.0
10  Tomato     USA   54.0    76.0  130.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫:如何计算分组平均值

来自分类Dev

熊猫:根据不同列中的类别对多个列的值进行分组。然后根据该类别的分组计算平均值

来自分类Dev

如何计算在熊猫中另一列上分组的平均值

来自分类Dev

编写函数进行分组,并计算平均值并计算熊猫的大小

来自分类Dev

分组并计算平均值并计算熊猫的大小

来自分类Dev

按列分组并获取分组熊猫的平均值

来自分类Dev

熊猫:计算按另一列分组的列的平均值

来自分类Dev

按年份分组和其他列,并根据特定条件的熊猫计算平均值

来自分类Dev

计算大熊猫在不同日期的平均值

来自分类Dev

计算熊猫中非数字列的平均值

来自分类Dev

我想计算特定月份的熊猫列的平均值

来自分类Dev

如何删除熊猫(.resample)计算的某些每周平均值?

来自分类Dev

熊猫:按平均值对列进行排序

来自分类Dev

熊猫计算每小时平均值

来自分类Dev

熊猫-计算时间戳的平均值

来自分类Dev

使用熊猫计算累积平均值

来自分类Dev

熊猫-无法计算移动平均值

来自分类Dev

熊猫计算每小时平均值

来自分类Dev

用熊猫计算每日平均值

来自分类Dev

Python:如何在不同的熊猫数据框列之间求平均值?

来自分类Dev

熊猫多列平均值

来自分类Dev

通过分组计算熊猫数据框架上的累积移动平均值

来自分类Dev

在分组的条形图中绘制熊猫DataFrame中不同条目数的平均值

来自分类Dev

熊猫窗口平均值

来自分类Dev

熊猫数据框:按两列分组,然后对另一列取平均值

来自分类Dev

熊猫分组多个列根据条件取另一列的平均值

来自分类Dev

查找熊猫数据框分组行的平均值

来自分类Dev

熊猫用给定分组的平均值替换nan

来自分类Dev

熊猫MultiIndex Dataframe滚动平均值分组

Related 相关文章

  1. 1

    熊猫:如何计算分组平均值

  2. 2

    熊猫:根据不同列中的类别对多个列的值进行分组。然后根据该类别的分组计算平均值

  3. 3

    如何计算在熊猫中另一列上分组的平均值

  4. 4

    编写函数进行分组,并计算平均值并计算熊猫的大小

  5. 5

    分组并计算平均值并计算熊猫的大小

  6. 6

    按列分组并获取分组熊猫的平均值

  7. 7

    熊猫:计算按另一列分组的列的平均值

  8. 8

    按年份分组和其他列,并根据特定条件的熊猫计算平均值

  9. 9

    计算大熊猫在不同日期的平均值

  10. 10

    计算熊猫中非数字列的平均值

  11. 11

    我想计算特定月份的熊猫列的平均值

  12. 12

    如何删除熊猫(.resample)计算的某些每周平均值?

  13. 13

    熊猫:按平均值对列进行排序

  14. 14

    熊猫计算每小时平均值

  15. 15

    熊猫-计算时间戳的平均值

  16. 16

    使用熊猫计算累积平均值

  17. 17

    熊猫-无法计算移动平均值

  18. 18

    熊猫计算每小时平均值

  19. 19

    用熊猫计算每日平均值

  20. 20

    Python:如何在不同的熊猫数据框列之间求平均值?

  21. 21

    熊猫多列平均值

  22. 22

    通过分组计算熊猫数据框架上的累积移动平均值

  23. 23

    在分组的条形图中绘制熊猫DataFrame中不同条目数的平均值

  24. 24

    熊猫窗口平均值

  25. 25

    熊猫数据框:按两列分组,然后对另一列取平均值

  26. 26

    熊猫分组多个列根据条件取另一列的平均值

  27. 27

    查找熊猫数据框分组行的平均值

  28. 28

    熊猫用给定分组的平均值替换nan

  29. 29

    熊猫MultiIndex Dataframe滚动平均值分组

热门标签

归档