Можете ли вы вычислять ежедневные и логические возвраты с переименованным столбцом?

#python #pandas #return #attributeerror #summary

#python #pandas #Возврат #ошибка атрибута #Краткие сведения

Вопрос:

Студент снова вернулся сюда с некоторой необходимой помощью.

Я снова в курсе Python, и, честно говоря, теперь мне это нравится намного больше, и мне очень помогли действительно хорошие люди в Интернете здесь. Но вернемся к моему вопросу. Я загрузил исторические данные для определенного запаса и переименовываю их скорректированное закрытие и объем в «PRC» и «Vol» соответственно. Я хочу рассчитать их ежедневную доходность, регистрировать ежедневную доходность и темпы роста, но, похоже, есть ошибка атрибуции, с которой я не знаю, что делать. Мои коды прилагаются ниже.

 from pandas_datareader import data as pdr

import yfinance as yf
yf.pdr_override()
import numpy as np


# download dataframe
data = pdr.get_data_yahoo("QQQ", start="2005-01-01", end="2011-12-31")

data.rename(columns={"Adj Close": "prc", "Volume": "vol"})

data['simple_rtn'] = data.prc.pct_change()
data['log_rtn'] = np.log(df.prc/df.prc.shift(1))
  

Запуск этого выдает мне эту ошибку — AttributeError: объект ‘DataFrame’ не имеет атрибута ‘prc’

По сути, я хочу узнать простой логарифмический доход, темп роста объема торгов в% и получить полную сводку по всему столбцу.

Ответ №1:

 data.rename(columns={"Adj Close": "prc", "Volume": "vol"})
  

Вы уверены, что этот грамматик правильный?
Попробуйте напечатать имена столбцов после этой команды.

Комментарии:

1. Ага. вы правы. Когда я печатаю имена столбцов, они остаются как Adj Close и Volume, но если я просто введу данные и запущу их, вместо этого я получу PRC и Vol .

2. Я думаю, вам следует попробовать другой метод переименования столбцов.

Ответ №2:

 data.rename(columns={"Adj Close": "prc", "Volume": "vol"}, inplace=True)
  

добавьте inplace = True , чтобы имя столбцов было изменено так, как вы ожидали.