Python: среднее на основе строк для подмножества столбцов

В настоящее время я начинающий программист, работающий над проектом по написанию и развертыванию определенного поведенческого расчета задержки в сети, чтобы приложение могло вместить любой кадр данных, загруженный через 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

Что делать, если я загрузил CSV только с 5 атрибутами (вместо 17).

Может кто-то указать мне верное направление?

1 ответ

Вы можете использовать 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
df['mean'] = df.mean(axis=1)

это должно помочь, однако, если вы указали описание типа объекта в первом столбце, вы можете пропустить это и вычислить среднее значение, просто используя

df['mean'] = df.iloc[:,1:].mean(axis=1)
Другие вопросы по тегам