使用 python 按特定列估计平均值组

estimate the average value group by a specific column using python

我有一个包含 2 列的 ascii 文件,如下所示;

id value
1  15.1
1  12.1 
1  13.5
2  12.4
2  12.5
3  10.1
3  10.2
3  10.5
4  15.1
4  11.2
4  11.5
4  11.7
5  12.5
5  12.2

我想估计每个 ID 的“值”列的平均值(即按 ID 分组)

是否可以在 python 中使用 numpy 或 pandas 做到这一点?

如果您不知道如何读取文件,您可以使用多种方法 here,因此您可以尝试其中一种,例如pd.read_csv().

阅读文件后,您可以使用 pandas 函数作为 pd.DataFrame.groupbypd.Series.mean():

进行尝试
df.groupby('id').mean()

#if df['id'] is the index, try this:
#df.reset_index().groupby('id').mean()

输出:

        value
id           
1   13.566667
2   12.450000
3   10.266667
4   12.375000
5   12.350000
import pandas as pd
filename = "data.txt"
df = pd.read_fwf(filename)
df.groupby(['id']).mean()

输出

        value
id           
1   13.566667
2   12.450000
3   10.266667
4   12.375000
5   12.350000