Добавить столбец в dataFrame с новыми данными? - PullRequest
0 голосов
/ 27 ноября 2018

В пандах я создал данные из импорта из CSV.

data = pd.read_csv('pathToCSV', index_col=[0],usecols=[0,2,3],names=['Date','High','Low'])

Вывод выглядит так -

2009.09.18  112  111
2009.09.19  114  222

А что если я хочу вычислить среднее из двухстолбцы, строка за строкой, а затем добавить значение в качестве нового столбца?То, что я сделал, было

average = (data[1]+data[2])/2

Тогда

data.join(average)

Но я получаю ошибку!Я делаю это правильно?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Хотя сакул абсолютно верен, вы можете рассмотреть следующее решение.

def avg(x,y):
    return (x+y)/2
df['row_avg'] = df[['High','Low']].apply(lambda x:avg(*x),axis=1) 

Преимущество этого подхода состоит в том, что вы можете определить любую функцию и затем применить к DataFrame строкам.

0 голосов
/ 27 ноября 2018

Я думаю, вы просто ищете функцию mean, которую вы хотите применить построчно (axis = 1) к столбцам High и Low:

# starting with frame:
>>> data
         Date  High  Low
0  2009.09.18   112  111
1  2009.09.19   114  222

# Use:
data['row_average'] = data[['High','Low']].mean(axis=1)

# and you end up with the frame:
>>> data
         Date  High  Low  row_average
0  2009.09.18   112  111        111.5
1  2009.09.19   114  222        168.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...