2015-06-10 5 views
1

У меня, кажется, простая ситуация: я работаю с файловой рамкой и добавляю столбцы, которые вычисляются на основе существующих столбцов в фреймворке данных. В последней строке в нижеприведенном фрагменте python жалуется, что столбец «reg_per» не найден. Даже если я не укажу, какие столбцы писать, python будет записывать только исходные, не рассчитанные столбцы в файл csv. Если я добавлю print data.reg_per непосредственно перед последней строкой ниже, он работает так, как я ожидал бы (т.е. python находит добавленный столбец). Как это сделать?Колонка, добавленная в dataframe pandas, не прилипает, когда, например. Письмо в csv

slope, intercept, r_value, p_value, std_err = stats.linregress(data.tendex, data.PER) reg_per = intercept + slope * data.tendex data.reg_per = pd.Series(reg_per, index = data.index) data.to_csv('tendex_vs_per_reg.csv', columns = ['reg_per'])

+0

Вы можете попробовать этот 'data ['reg_per'] = pd.Series (reg_per, index = data.index)' то, что вы делаете, это добавление атрибута, а не столбца – EdChum

+1

Кроме того, вы можете просто назначить 'reg_per 'непосредственно, нет необходимости строить серию из него. – filmor

ответ

1

Здесь

data.reg_per = pd.Series(reg_per, index = data.index) 

Вы просто установив свойство, а не писать в колонку

data['reg_per'] = pd.Series(reg_per, index = data.index) 

Избегайте. Accessor, поскольку это приводит к ошибкам, подобным этому.

+0

Блестящий - это отлично работает (будет повышаться, но у меня недостаточно репутации ...) –

+0

На самом деле единственное, что вы * предположили * сделать, - это щелкнуть по стрелке, чтобы отметить вопрос как решенный. Это не требует репутации;) – Gecko

Смежные вопросы