Pandas plot дает правильный сюжет, тогда как matplotlib дает ошибку
У меня есть набор данных, где я пытаюсь визуализировать данные date-time
, Я преобразовал строку даты и времени в date-time
отформатировать
dataset = pd.read_csv('price.csv')
dataset2=dataset[['Date','MCP']]
dataset2['Date']=pd.to_datetime(dataset2['Date'])
Сейчас заговор в matplotlib
dataset2.plot()
но для того же, matplotlib
plt.plot(dataset2.index,dataset2['MCP'])
Может кто-нибудь объяснить мне, что происходит? Я конвертирую string
в date-time
используя неправильный метод или что-то еще?
2 ответа
Я нашел решение проблемы, но если бы кто-то мог объяснить причину
dataset2['Date']=pd.to_datetime(dataset2['Date']).dt.strftime('%d/%m/%Y %H:%M:%S')
dataset2['Date']=pd.to_datetime(dataset2['Date'])
По умолчанию Pandas преобразует его в другой формат, поэтому мне нужно преобразовать его обратно в строку с правильным форматом, приемлемым для matplotlib, а затем снова преобразовать строку в дату-время. Есть ли другой способ сделать это?
plt.plot(dataset2['Date'],dataset2['MCP'])
Я понял, что интерпретирует matplotlib, и вот он: после простого преобразования в дату-время, используя
dataset2['Date']=pd.to_datetime(dataset2['Date'])
Взяв первые 96 значений (после которых дата меняется), она работает как надо. Но после этого (получение значений на следующий день и т. Д.) Он считает часть дня меткой времени "день" как месяц и растягивает дни до следующего месяца (до тех пор, пока не произойдет это конкретное значение).
PS - пришлось написать вторым ответом, потому что не позволено вставлять более 2 изображений до репутации 10