使用 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.groupby
和 pd.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
我有一个包含 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.groupby
和 pd.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