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)