Отображение информации о временных рядах с отсутствующими значениями даты - PullRequest
0 голосов
/ 13 января 2020

У меня есть следующий набор данных:

dataset.head(7)
Transaction_date     Product   Product Code  Description    
2019-01-01           A         123           A123
2019-01-02           B         267           B267
2019-01-09           B         267           B267
2019-02-11           C         139           C139
2019-02-11           A         125           C125 
2019-02-12           C         139           C139
2019-02-12           A         123           A123

Набор данных хранит информацию о транзакции, для которой доступна дата транзакции. Другими словами, не за все дни данные доступны. В конечном итоге я хочу создать график временных рядов, показывающий мне количество транзакций в день.

Пока что я сделал простой подсчет:

ax = sns.countplot(x=dataset["Transaction_date"],data=dataset)

На этом графике показаны даты, когда произошла транзакция. Но я бы предпочел также видеть даты, когда на графике не было транзакций, желательно, чтобы они отображались как 0.

Я пробовал следующее, но получаю сообщение об ошибке:

groupbydate = dataset.groupby("Transaction_date")
ax = sns.tsplot(x="Transaction_date",y="Product",data=groubydate.fillna(0))

Но я получаю ошибку cannot label index with a null key Из-за ограничений я могу использовать только seaborn 0.8.1

Ответы [ 2 ]

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

Вы можете удалить строки, содержащие значения NaN, используя pandas.DataFrame.dropna, а затем построить график. Например:

dataset.dropna(thresh=2)

удалит все строки, где есть как минимум два значения NaN.

Вы также можете заполнить значения NaN, используя pandas.DataFrame.fillna

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

Я считаю, reindex должно работать на вас:

# First convert the index to datetime
dataset.index = pd.DatetimeIndex(dataset.index)

# Then reindex! You can also select the min and max of the index for the limits
dataset= dataset.reindex(pd.date_range("2019-01-01", "2019-02-12"), fill_value="NaN")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...