首页 > 解决方案 > Pandas DataFrame:计算一列中与第二列内容相同的那些行的平均值?

问题描述

我想问一下是否可以按照我需要的方式计算 pandas DataFrame 中的平均值:

我的数据框看起来像这样:

import pandas as pd
df = pd.DataFrame({'rmsf': [1, 4, 7, 1, 5, 6, 4],
                   'residue': [2, 2, 2, 3, 3, 3, 3]})
df

结果:


   rmsf residue
0   1     2
1   4     2
2   7     2
3   1     3
4   5     3
5   6     3
6   4     3

现在我想计算“rmsf”值的平均值,但只计算那些属于相同“残基”的值。所以,我需要残数 2 的平均值,因此只需要计算“rmsf”列(1,4 和 7)的前三行的平均值。然后对于残数 3,我需要根据值 1、5、6 和 4 等计算平均值。新的平均值将存储在一个新的数据框中,如下所示:


   rmsf residue
0   4     2
1   8.5   3

有没有一种方法可以让熊猫做到这一点?仅计算一列中第二列中具有相同残基数的那些行的平均值?

谢谢你。

标签: pythonpython-3.xpandasdataframe

解决方案


按哪一列分组没有区别

试试这个,但之后不要忘记移动列

df.groupby('residue')['rmsf'].mean().reset_index()

推荐阅读