簡體   English   中英

在 python 中使用用於降雨應用的循環進行計算

[英]Calculation in python using loops for rainfall application

我正在嘗試計算不同持續時間的“最大降雨量”,例如“1hr”和“3hr”持續時間。

使用我的數據集:

Date                                  Rainfall
2007-01-01 00:00:00                       0 
2007-01-01 01:00:00                      0.5    
2007-01-01 02:00:00                      0.9
2007-01-01 03:00:00                      0.2
…..
2009-01-01 00:00:00                       0 
2009-01-01 01:00:00                      0.4    
2009-01-01 02:00:00                      0.8
2009-01-01 03:00:00                      0.9

如果我將設置我的日期范圍(例如 2007-01-01 到 2009-01-01),並將其指定為最長“3 小時”持續時間,則計算應該如下所示(這應該在 for 循環中,我猜測):

2007-01-01 00:00:00開始,最長 3 小時為:

0+0.5+0.9=1.4

然后從2007-01-01 01:00:00開始,最長 3 小時為:

0.5+0.9+0.2=1.6

依此類推……直到它到達 2009-01-01 03:00:00 時找到真正的最大 3 小時持續時間。

我知道這需要一個 for 循環,我是 python 的新手,所以我還在學習。 誰能幫助我闡明這一點?

我認為你需要DataFrame.rollingDatetimeIndex和頻率3Hsum

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

df1 = df.set_index('Date').rolling('3H').sum()
print (df1)
                     Rainfall
Date                         
2007-01-01 00:00:00       0.0
2007-01-01 01:00:00       0.5
2007-01-01 02:00:00       1.4
2007-01-01 03:00:00       1.6

如果需要最多每 3 小時:

df2 = df.set_index('Date').rolling('3H').max()
print (df2)
                     Rainfall
Date                         
2007-01-01 00:00:00       0.0
2007-01-01 01:00:00       0.5
2007-01-01 02:00:00       0.9
2007-01-01 03:00:00       0.9

暫無
暫無

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

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