#python #database #pandas #dataframe #datetime
#python #База данных #pandas #фрейм данных #дата-время
Вопрос:
Я пытаюсь построить две экспоненциальные скользящие средние (EMA) вместе с исходными данными, которые имеют единицы измерения даты / времени.
для создания EMA я использую функцию, которая возвращает массив значений на основе входных данных, которые я затем использую для создания фреймов данных EMA с разными периодами, используя:
EMAl = pd.DataFrame()
EMAl['explow'] = ema(20) #array
Проблема в том, что это создает единицы индекса по умолчанию.
Я считаю, что в какой-то момент мне следует использовать pd.to_datetime, но я не уверен, как его использовать, чтобы единицы измерения данных / времени EMAs соответствовали единицам входных данных.
Вот как я загружаю входные данные в начале.
tesla_df = yf.download('TSLA',
start='2019-08-01',
end='2020-08-31',
progress=False)
вот входной фрейм данных —
Date Open High Low Close Adj Close Volume
2019-07-31 243.000000 246.679993 236.649994 241.610001 241.610001 9178200
2019-08-01 242.649994 244.509995 231.770004 233.850006 233.850006 8259500
Я не могу сохранить столбец даты за заданный интервал времени в фрейме данных EMA, который в конечном итоге выглядит следующим образом:
exphigh
0 233.774002
1 233.656001
2 235.204002
3 235.139333
4 233.096220
Когда я пытаюсь отобразить следующее
plt.figure(figsize=(22.5, 9.5))
tesla_df['Close'].plot(title="TSLA's stock price")
plt.plot(EMAl['explow'])
я получаю следующее сообщение об ошибке
‘минимальный предел просмотра -36883.200000000004 меньше 1 и является недопустимым значением даты Matplotlib. Это часто происходит, если вы передаете значение, отличное от datetime, оси с единицами datetime’
Комментарии:
1. Неясно, в чем ваша проблема. Опубликуйте, что делает ваш код, и пример ожидаемого вывода.
2. Я добавил еще немного информации к сообщению. Надеюсь, это прояснит ситуацию
3. В какой строке возникает ошибка? Похоже, что у вас есть некоторое отрицательное значение в столбце, интерпретируемое как дата для построения графика. Все значения даты должны быть положительными.
4. Ошибка возникает из-за разницы в единицах измерения между двумя наборами данных, которые я пытаюсь отобразить. Я застрял на том, как преобразовать единицы нового набора данных, чтобы они соответствовали оригиналу и могли быть построены вместе.