#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
, чтобы имя столбцов было изменено так, как вы ожидали.