我目前是一个初级程序员,正在开发一个项目,在网上编写和部署特定的行为延迟计算,以便应用程序可以容纳通过CSV上传的任何数据帧。分析要求我取人内列数N的平均值(即,在同一行内),并迭代所有受访者。
如何将执行此计算的特定实例转换为通用函数,以便将其更通用地应用于上传的任何数据帧。例如,如何编写下面的基于行的平均值计算来处理N个属性/列:
data['PersonalAverage'] = (data[[2]] + data[[4]] + data[[6]] + data[[8]] + data[[10]] + data[[12]] + data[[14]] + data[[16]] + data[[18]] + data[[20]] + data[[22]] + data[[24]] + data[[26]] + data[[28]] + data[[30]] + data[[32]] + data[[34]])/17如果我上传了一个只有5个属性(而不是17个)的CSV会怎么样?
有谁能给我指个方向吗?
发布于 2016-04-20 12:46:13
您可以使用data.mean来实现此目的。
In [3]: df
Out[3]:
a b c d
0 1 2 3 4
1 4 5 6 7
2 2 4 6 8
3 3 2 1 4
4 0 1 2 4
In [4]: cols = ['a', 'b', 'd'] # Columns to consider for average
In [5]: df['mean'] = df[cols].mean(axis=1)
In [7]: df
Out[7]:
a b c d mean
0 1 2 3 4 2.333333
1 4 5 6 7 5.333333
2 2 4 6 8 4.666667
3 3 2 1 4 3.000000
4 0 1 2 4 1.666667发布于 2020-09-23 01:21:19
df['mean'] = df.mean(axis=1)但是,如果您在第一列中指定了对象类型描述,则可以跳过该操作,只需使用以下命令来计算平均值
df['mean'] = df.iloc[:,1:].mean(axis=1)https://stackoverflow.com/questions/36733225
复制相似问题