簡體   English   中英

Plot 每天作為一個時間序列,按小時計算

[英]Plot each day as a time serie on a hourly basis

我有一個時間序列數據框(df),其中包含幾天的變量 y 信息(每小時注冊一次):

> df.head()

          Date           y         
1   2019-10-03 00:00:00 33  
2   2019-10-03 01:00:00 10  
3   2019-10-03 02:00:00 39  
4   2019-10-03 03:00:00 60  
5   2019-10-03 04:00:00 21  

我想每天將 plot 作為單個時間序列,x 軸是小時,即我想每小時(獨立地)查看每天的 y。 如果我有 N 天,我想查看樣本 plot 上的 N 個時間序列,變量 y 在 y 軸上,小時在 x 軸上。 這可能嗎?

如果每天對我的數據進行分組,我會因為總和 function 而丟失小時信息:

 > df_day = df.groupby(pd.Grouper(key='Date',freq='1D')).sum() 

       Date     y
0   2019-10-03 800
1   2019-10-04 899
2   2019-10-05 1020
3   2019-10-06 544
4   2019-10-07 321

使用DataFrame.groupby與日期和時間,聚合總和並通過Series.unstack重塑:

df['Date'] = pd.to_datetime(df['Date'])

df_day = (df.groupby([df['Date'].dt.date, df['Date'].dt.hour])['y']
            .sum()
            .unstack(fill_value=0))
print (df_day)
Date         0   1   2   3   4
Date                          
2019-10-03  33  10  39  60  21

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM