Временные ряды Python корректно обрабатывают пропущенные даты

Я использую Python 3.6 в Spyder и пытаюсь построить график с помощью автономной библиотеки. В любом случае, у меня есть некоторые пропущенные даты в моем csv-файле, и я думаю, что они вызывают проблему, которую вы можете увидеть на прикрепленном скриншоте.

Вот мой код Python:

from plotly.offline import plot
import plotly.graph_objs as go

import pandas as pd

df = pd.read_csv('H://python/final_mk_output_regression.csv')

data = [go.Scatter(
          x=df.MESS_DATUM,
          y=df['sum_meal'])]

plot(data)

Я не могу получить правильный график. Например, часть до мая очень сбивает с толку. У меня пропущены даты в моем csv-файле с 18 апреля по 30 апреля, что может быть причиной этой проблемы. Как я могу решить эту проблему?

1 ответ

Просто добавьте type="category" к коду. Вот так:

#PRINT DATA
data = [go.Scatter(
                x=df.MESS_DATUM,
                y=df['sum_meal'])]
layout = dict(
                title="timeline meal orders",
                xaxis = dict(
                type="category"))
fig = dict(data=data, layout=layout)
plot(fig, filename="overview")

Только добавление type='category' не поможет, потому что это даст несортированные дату и время. Вам также потребуется добавить categoryorder = 'category ascending'.

Вот модифицированный код:

data = [go.Scatter(
            x=df.MESS_DATUM,
            y=df['sum_meal'])]

layout = dict(
            title="timeline meal orders",
            xaxis = dict(
            type="category", 
            categoryorder='category ascending'))

fig = dict(data=data, layout=layout)
plot(fig, filename="overview")
Другие вопросы по тегам