Pandas :查找列中特定限制内的值的平均值
Pandas : finding the average of values within a particular limit in a column
我在我的 python 程序。
import pandas as pd
fields = ['Time', 'Time 1', 'Time 2']
df=pd.read_csv('file.csv', skipinitialspace=True, usecols=fields)
Here是我在程序中导入的文件
如何创建一个函数,在给定时间限制内找到 Test 1 列中值的 mean/average?时间限制(起始值和结束值)将作为函数中的参数。
例如,我想求 测试 1 列中从 0.50 秒到 4.88 秒的平均值。限制(0.50 和 4.88)将是函数的参数。
我认为需要 between
for boolen mask, filter by boolean indexing
并得到 mean
:
def custom_mean(x,y):
return df.loc[df['Time'].between(x,y), 'Test 1'].mean()
示例:
df = pd.DataFrame({'Time':[0.0, 0.25, 0.5, 0.68, 0.94, 1.25, 1.65, 1.88, 2.05, 2.98, 3.45, 3.99, 4.06, 4.68, 4.88, 5.06, 6.0],
'Test 1':np.random.randint(10, size=17)})
print (df)
Test 1 Time
0 3 0.00
1 6 0.25
2 5 0.50
3 4 0.68
4 8 0.94
5 9 1.25
6 1 1.65
7 7 1.88
8 9 2.05
9 6 2.98
10 8 3.45
11 0 3.99
12 5 4.06
13 0 4.68
14 9 4.88
15 6 5.06
16 2 6.00
def custom_mean(x,y):
return df.loc[df['Time'].between(x,y), 'Test 1'].mean()
print (custom_mean(0.50, 1.0))
5.666666666666667
#verify
print (df.loc[df['Time'].between(0.50, 1.0), 'Test 1'])
2 5
3 4
4 8
Name: Test 1, dtype: int32
您可以使用 numpy 库中的 between
掩码和 mean
、std
函数。
例如:这行代码将估计在时间 0.0 和 5.0 之间获取的 Test 1
的平均值:
np.mean(df[df['Time'].between(0.0, 5.0)]['Test 1'])
我在我的 python 程序。
import pandas as pd
fields = ['Time', 'Time 1', 'Time 2']
df=pd.read_csv('file.csv', skipinitialspace=True, usecols=fields)
Here是我在程序中导入的文件
如何创建一个函数,在给定时间限制内找到 Test 1 列中值的 mean/average?时间限制(起始值和结束值)将作为函数中的参数。
例如,我想求 测试 1 列中从 0.50 秒到 4.88 秒的平均值。限制(0.50 和 4.88)将是函数的参数。
我认为需要 between
for boolen mask, filter by boolean indexing
并得到 mean
:
def custom_mean(x,y):
return df.loc[df['Time'].between(x,y), 'Test 1'].mean()
示例:
df = pd.DataFrame({'Time':[0.0, 0.25, 0.5, 0.68, 0.94, 1.25, 1.65, 1.88, 2.05, 2.98, 3.45, 3.99, 4.06, 4.68, 4.88, 5.06, 6.0],
'Test 1':np.random.randint(10, size=17)})
print (df)
Test 1 Time
0 3 0.00
1 6 0.25
2 5 0.50
3 4 0.68
4 8 0.94
5 9 1.25
6 1 1.65
7 7 1.88
8 9 2.05
9 6 2.98
10 8 3.45
11 0 3.99
12 5 4.06
13 0 4.68
14 9 4.88
15 6 5.06
16 2 6.00
def custom_mean(x,y):
return df.loc[df['Time'].between(x,y), 'Test 1'].mean()
print (custom_mean(0.50, 1.0))
5.666666666666667
#verify
print (df.loc[df['Time'].between(0.50, 1.0), 'Test 1'])
2 5
3 4
4 8
Name: Test 1, dtype: int32
您可以使用 numpy 库中的 between
掩码和 mean
、std
函数。
例如:这行代码将估计在时间 0.0 和 5.0 之间获取的 Test 1
的平均值:
np.mean(df[df['Time'].between(0.0, 5.0)]['Test 1'])