2016-04-20 4 views
0

В настоящее время я начинаю программист, работающий над проектом, чтобы написать и развернуть конкретный расчет поведенческой задержки в Интернете, чтобы приложение могло вместить любой файл данных, загружаемый через CSV. Для анализа требуется, чтобы я принимал среднее число N столбцов внутри человека (т. Е. В пределах одной строки) и перебирал всех респондентов.Python: среднеквадратическое значение для подмножества столбцов

Как я могу взять конкретный экземпляр, где я выполняю этот расчет, и превратить его в общую функцию, такую, что они применяются в общем случае к любому загруженному файловому кадру. Например, как может строка на основе вычисления среднего значения ниже быть написаны для работы на 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).

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

+0

Любая причина не в использовании numpy? Он имеет среднюю функцию и функциональность для выбора определенных строк. –

ответ

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