0

我目前是一名初级程序员,正在从事一个项目,以在线编写和部署特定的行为延迟计算,以便该应用程序可以容纳通过 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,该怎么办。

谁能指出我正确的方向?

4

2 回答 2

0
df['mean'] = df.mean(axis=1)

这应该可以解决问题,但是,如果您在第一列中说了对象类型描述,您可以跳过它并简单地使用计算平均值

df['mean'] = df.iloc[:,1:].mean(axis=1)
于 2020-09-22T17:21:18.890 回答
0

您可以将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
于 2016-04-20T04:46:12.717 回答