Проблема построения графиков Pyhton TimeSeries с праздниками (без строк даты и времени) - PullRequest
0 голосов
/ 03 апреля 2020

enter image description here Я пытаюсь построить столбец pandas кадра данных с указателем даты и времени (временных рядов). Некоторые даты и время не имеют строк в фрейме данных, и когда я собираюсь нанести его на график с помощью простого df['column_name'].plot(), на оси x, которая является датой-временем, он показывает дату и время без строк в фрейме данных и соединяет данные до этих пустых дней с дата после него.

Как мне избавиться от этих пустых строк при построении?

1 Ответ

0 голосов
/ 03 апреля 2020

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

Самый простой способ определить библиотека, я думаю, предназначена для создания NaN-строк, чтобы индекс отражал то, что, как вы думаете, он должен отражать. Т.е. если вы думаете, что данные должны быть поминутными, убедитесь, что индекс фрейма данных поминутный.

Затем библиотека черчения понимает, что там, где есть данные NaN, линия не должна рисоваться.

Пример кода:

# generate a dataframe with one column of 

df = pd.DataFrame(
    [
        ['2020-04-03 12:10:00',23.2],
        ['2020-04-03 12:12:00',23.1],
        ['2020-04-03 12:13:00',14.1], #notice the gap here!
        ['2020-04-03 12:24:00',23.1],
        ['2020-04-03 12:25:00',23.3],
     ],
    columns=['timestamp','value']
)
df['timestamp'] = pd.to_datetime(df.timestamp) # make sure that the timestamp data is stored as timestamps

Затем мы создаем переиндексацию данных, которые создают новые наноряды, где это необходимо.

df = df.set_index('timestamp')
df = df.reindex(pd.date_range(start=df.index.min(),end=df.index.max(),freq='1min'))

Наконец, строим его!

df['value'].plot(figsize=(10,6))

Результат выглядит как enter image description here

...