【问题标题】:Iterate over rows and calculate mean of selected items putting the new value in a new column [duplicate]迭代行并计算所选项目的平均值,将新值放入新列[重复]
【发布时间】:2020-04-06 17:46:44
【问题描述】:

使用 Pandas,我有一个包含行和列的数据框:

id  column1 column2 column3
1         4  Banana       2
2         4  Carrot       
3         1  Tomato       3
4         7   Melon       5
5         1    Lime       5

我想遍历每一行并计算 column1 和 column2 中的项目的平均值(例如第 1 行:4+2/2=3)。一切都将被放入一个名为 mean 的新列中。空值应该被忽略。

结果应该是这样的:

id  column1 column2 column3  mean
1         4  Banana       2     3
2         4  Carrot             4
3         1  Tomato       3     2
4         7   Melon       5     6
5         2    Lime       5   3.5

【问题讨论】:

  • 使用df['mean'] = df.mean(axis=1)

标签: python pandas numpy dataframe


【解决方案1】:

你可以使用:

df['mean'] = df[['column1', 'column3']].mean(axis=1)

【讨论】:

  • 只是一个建议...select dtypes 可以帮助避免列名的硬编码
  • @sammywemmy - 对我来说,熊猫省略了非数字列,所以工作 df['mean'] = df.mean(axis=1)
  • 不错。更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 2017-07-07
  • 2015-11-02
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
相关资源
最近更新 更多