время построения с python - PullRequest
0 голосов
/ 24 января 2020

У меня есть pandas фрейм данных, который выглядит примерно так

enter image description here

Я хочу построить график времени на X-axis и продажи на Y-axis. Это то, что я пробовал до сих пор.

ax = sns.scatterplot(x="Time", y="sales", data=df)

Я получаю ошибку, которая говорит:

не может интерпретировать ввод «Время»

Ответы [ 3 ]

0 голосов
/ 24 января 2020

Как уже говорилось ранее в этой теме, вам нужно отформатировать x-axsis

from datetime import datetime
import matplotlib.pyplot as plt
times = ['01:00 AM','02:00 AM','03:00 AM','04:00 AM','05:00 AM']
sales = [256, 147, 478, 569, 147]
format = '%I:%M %p'
timesFormated =[]
for i in times:
    timesFormated.append(datetime.strptime(i, format))
plt.plot(timesFormated, sales)
plt.show() 

РЕДАКТИРОВАТЬ:

Я заметил, что вы упомянули, что у вас есть кадр данных pada, поэтому здесь другой вариант

import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

df = pd.DataFrame({
    'times':['01:00 AM','02:00 AM','03:00 AM','04:00 AM','05:00 AM'],
    'sales':[256, 147, 478, 569, 147]
})

print("Time column type before: ", df['times'].dtypes)        # EDIT 2
df['times'] = pd.to_datetime(df['times'],format='%I:%M %p' )  # EDIT 2
print("Time column type after: ", df['times'].dtypes)         # EDIT 2

plt.plot(df['times'], df['sales'])
plt.show() 

РЕДАКТИРОВАТЬ 2:

См. мои добавленные 3 строки выше, Это дает формат столбца времени до и после его преобразования:

>>>Time column type before:  object
>>>Time column type after:  datetime64[ns]
0 голосов
/ 24 января 2020
import pandas as pd
data = [['1:00 AM', 256], ['2:00 AM', 147], ['3:00 AM', 478], ['4:00 AM', 569], ['5:00 AM', 147]]
df = pd.DataFrame(data, columns = ['Time', 'Sales'])
import matplotlib.pyplot as plt
x = df['Time']
y = df['Sales']
plt.plot(x, y)
plt.show()

Приведенный выше код генерирует следующий график: - Time-Sales plot

0 голосов
/ 24 января 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...