将2个不同年份的.resample(D).size()绘制到一张图表中?

时间:2020-08-24 15:12:58

标签: python dataframe plot time-series pandas-resample

我有每年3月至5月底的2019年和2020年数据。

我已经在日期时间做到了

    ####Working with Date
df['Date']= pd.to_datetime(df['Date'])
df['Time_Hour'] = df['Date'].apply(lambda x: x.hour)
df['Month'] = df['Date'].apply(lambda x: x.month)
df['Year'] = df['Date'].apply(lambda x: x.year)
df['Day'] = df['Date'].apply(lambda x: x.day)
df.set_index('Date', inplace=True)

并按年份分隔数据

df19 = df[df['Year'] == 2019]
df20 = df[df['Year'] == 2020]

如果我分别进行每年的重新抽样

df19.resample('D').size().plot(title= '2019', legend=False)
#df20.resample('D').size().plot(title= '2019', legend=False)

我输出了所需的图表

enter image description here

#df19.resample('D').size().plot(title= '2019', legend=False)
df20.resample('D').size().plot(title= '2019', legend=False)

enter image description here

但是我希望能够将两个图表一起比较,当我尝试同时运行它们时,这就是绘制的图表

df19.resample('D').size().plot(title= '2019', legend=False)
df20.resample('D').size().plot(title= '2019', legend=False)

enter image description here

我意识到resample(D)仍然查看年份,因此合并的图表是正确的,但是我想根据Day将它们进行比较。

关于如何完成此操作的任何建议?

编辑:这是原始数据的.head(20)(由于其太大而无法显示2020年数据)

               Date        ID Case Number
0    3/1/2019 23:43  11610968    JC170728
1     3/3/2019 3:17  11611832    JC171944
2     3/4/2019 0:42  11612609    JC172806
3    3/4/2019 23:13  11613442    JC173895
4    3/10/2019 6:29  11618474    JC179991
5   3/12/2019 21:38  11621181    JC183336
6   3/14/2019 10:14  11623047    JC184966
7   3/14/2019 23:00  11623349    JC185895
8   3/14/2019 23:35  11623295    JC185924
9    3/15/2019 2:25  11623400    JC185990
10  3/15/2019 19:25  11624307    JC187019
11  3/15/2019 21:12  11624280    JC187114
12   3/16/2019 0:30  11624491    JC187272
13  3/16/2019 18:25  11625210    JC188160
14  3/17/2019 21:35  11626248    JC189475
15  3/18/2019 21:49  11627419    JC190873
16  3/20/2019 16:15  11629464    JC193053
17  3/21/2019 17:50  11630638    JC194480
18   3/22/2019 0:22  11630719    JC194815
19   3/22/2019 4:43  11630853    JC194892

这是如上所述的按年份分隔的数据帧的.head(10)

                 Date        ID Case Number
0 2019-03-01 23:43:00  11610968    JC170728
1 2019-03-03 03:17:00  11611832    JC171944
2 2019-03-04 00:42:00  11612609    JC172806
3 2019-03-04 23:13:00  11613442    JC173895
4 2019-03-10 06:29:00  11618474    JC179991
5 2019-03-12 21:38:00  11621181    JC183336
6 2019-03-14 10:14:00  11623047    JC184966
7 2019-03-14 23:00:00  11623349    JC185895
8 2019-03-14 23:35:00  11623295    JC185924
9 2019-03-15 02:25:00  11623400    JC185990
                  Date        ID Case Number
84 2020-03-01 09:20:00  11996077    JD170035
85 2020-03-04 21:50:00  11999611    JD174374
86 2020-03-06 23:24:00  12001746    JD176808
87 2020-03-07 20:53:00  12002531    JD177851
88 2020-03-07 21:03:00  12002529    JD177805
89 2020-03-11 05:45:00  12005695    JD181579
90 2020-03-13 04:43:00  12007615    JD183927
91 2020-03-13 05:10:00  12007594    JD183934
92 2020-03-13 14:50:00  12008297    JD184421
93 2020-03-16 19:30:00  12011057    JD187968

1 个答案:

答案 0 :(得分:0)

这是我发现的一个被黑的“解决方案”,但仍然可以接受更好的解决方案。我最终将2020年数据的偏移量使用了1年(365天)。

df19.resample('D').size().plot()
df20.resample('D', loffset = '-365d').size().plot()

enter image description here