Составление графика даты и времени - PullRequest
0 голосов
/ 21 апреля 2020

У меня ошибка с сгруппированным по дате кадром данных: byDate = df.groupby('Date').count()

Date       Value      
2019-08-15 2
2019-08-19 1    
2019-08-23 7    
2019-08-28 4
2019-09-04 7
2019-09-09 2    

Я знаю, что type(df["Date"].iloc[0]) возвращает datetime.date

Я хочу построить данные таким образом, те дни, для которых никакое значение не доступно, показаны как 0. Я играл с ax = sns.lineplot(x=byDate.index.fillna(0), y="Value", data=byDate) Я, однако, могу получить только этот вывод, где ось Y указывает, что линия не проведена 0 для дней, для которых нет доступных значений.

enter image description here

1 Ответ

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

Вы когда-нибудь пытались создать новый объект dataFrame, индексированный по всем датам в диапазоне от startDate до endDate и затем заполнить пропущенные значения с 0.0?

Вывод будет выглядеть примерно так:

dates = pd.to_datetime(['2019-08-15','2019-08-19','2019-08-23','2019-08-28','2019-09-04','2019-09-09']).date
byDate = pd.DataFrame({'Value':[2,1,7,4,7,2]},index=dates)

startDate = byDate.index.min()
endDate = byDate.index.max()
newDates = pd.date_range(startDate,endDate, periods=(endDate - startDate).days).date.tolist()
newDatesDf = pd.DataFrame( index=newDates)
newByDate = pd.concat([newDatesDf,byDate],1).fillna(0)

sns.lineplot(x=newByDate.index, y="Value", data=newByDate)

вывод

...