python - 将新列计算为 Pandas 中其他列的平均值

标签 python pandas dataframe

<分区>

我有一个这个数据框,我想计算一个新列作为 salary_1salary_2salary_3 的平均值:

df = pd.DataFrame({
    'salary_1': [230, 345, 222],
    'salary_2': [235, 375, 292],
    'salary_3': [210, 385, 260]
})
      salary_1     salary_2    salary_3
0        230           235        210
1        345           375        385
2        222           292        260

我怎样才能以最有效的方式在 Pandas 中做到这一点?其实我还有很多专栏,不想一一写了。

像这样:

      salary_1     salary_2    salary_3     salary_mean
0        230           235        210     (230+235+210)/3
1        345           375        385       ...
2        222           292        260       ...

最佳答案

使用.mean .通过指定轴,您可以取行或列的平均值。

df['average'] = df.mean(axis=1)
df

返回

       salary_1  salary_2  salary_3     average
0       230       235       210  225.000000
1       345       375       385  368.333333
2       222       292       260  258.000000

如果你只想要少数的平均值,你可以 select only those columns .例如

df['average_1_3'] = df[['salary_1', 'salary_3']].mean(axis=1)
df

返回

   salary_1  salary_2  salary_3  average_1_3
0       230       235       210        220.0
1       345       375       385        365.0
2       222       292       260        241.0

关于python - 将新列计算为 Pandas 中其他列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48366506/

相关文章:

python - 在 Paytm 上获取 404 Not Found nginx 1.6.2

python manage.py syncdb错误

python - 在 Pycharm 中以 DEBUG 模式跳过 Django 服务器上的系统检查

python - 根据列表或另一列中的值在 Pandas 数据框中动态选择列

python - 如何使用geopy从坐标中获取邮政编码?

python - 将 pandas 数据框中的数据在某个固定列之后重复移动到下一组行

python - 同一应用程序中的几个(两个)Flask 对象

python - Pandas 读取 Excel : how to access a given cell by column and row numbers

python - 如何在 Python 的数据框列中获取包含空列表的行

python - 将 pandas 中的数据框从迭代列表转换为适当的列和行