Печать с использованием панд и формата даты и времени - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть фрейм данных только с двумя столбцами, Date и ClosingPrice. Я пытаюсь построить их, используя df.plot (), но продолжаю получать эту ошибку:

ValueError: минимальный предел просмотра -36785.37852 меньше 1 и является недопустимым значением даты Matplotlib. Это часто случается, если вы передаете значение без даты и времени на ось с датой и временем

Я нашел документацию по этому поводу в matplotlib, но там говорится, как убедиться, что формат даты и времени. Вот код, который я должен убедиться, что формат даты и времени, а также распечатать тип данных для каждого столбца, прежде чем пытаться построить.

df.Date = pd.to_datetime(df.Date)

print(df['ClosingPrice'].dtypes)
print(df['Date'].dtypes)

Вывод для этих операторов печати:

float64 datetime64 [нс]

Я не уверен, в чем проблема, поскольку я проверяю тип данных перед построением графика. Вот как выглядят первые несколько строк набора данных:

Date ClosingPrice 0 2013-09-10 64.7010 1 2013-09-11 61.1784 2 2013-09-12 61.8298 3 2013-09-13 60.8108 4 2013-09-16 58.8776 5 2013-09-17 59.5577 6 2013-09-18 60.7821 7 2013-09-19 61.7788 Любая помощь приветствуется.

1 Ответ

0 голосов
/ 11 сентября 2018

ПОСЛЕДНИЕ РЕДАКТИРОВАТЬ после того, как все больше людей оказались здесь.Чтобы быть понятным новичкам в python, вы должны сначала импортировать панд для приведенных ниже кодов:

import pandas as pd

Попробуйте сначала установить индекс в качестве столбца Datetime:

df.set_index('Date', inplace=True)

Просточтобы быть уверенным, попробуйте установить индекс dtype (изменить: это, вероятно, не понадобится, как вы делали это ранее):

df.index = pd.to_datetime(df.index)

И затем нанесите его на график

df.plot()

Если это решитпроблема в том, что когда вы используете .plot() из объекта DataFrame, ось X автоматически будет индексом DataFrame.

Если² ваш DataFrame имел Datetimeindex и 2 других столбца (скажем, ['Currency','pct_change_1']), и вы хотелипостроите только один из них (возможно pct_change_1), который вы могли бы:

# single [ ] transforms the column into series, double [[ ]] into DataFrame
df[['pct_change_1']].plot(figsize=(15,8)) 

Где figsize=(15,8) Вы устанавливаете размер графика (width, height).

Последнийредактировать:

Если³, если вы не хотите удалять исходный индекс, вы также можете:

df[['Date','ClosingPrice']].plot('Date', figsize=(15,8))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...