【问题标题】:Calculation in python using loops for rainfall application在 python 中使用循环计算降雨应用
【发布时间】:2020-04-23 06:29:52
【问题描述】:

我正在尝试计算不同持续时间的“最大降雨量”,例如“1 小时”和“3 小时”持续时间。

使用我的数据集:

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开始,最长3hr是:

0.5+0.9+0.2=1.6

以此类推……直到它到达 2009-01-01 03:00:00 时找到真正的最大 3 小时持续时间。

我知道这需要一个 for 循环,我是 python 新手,所以我还在学习。谁能帮我解释一下?

【问题讨论】:

    标签: python pandas loops for-loop


    【解决方案1】:

    我认为你需要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
    

    【讨论】:

    • 但不幸的是,由于我拥有大量数据集,滚动总和似乎无法处理它。数据框本身不加载..
    • @karate - 文件中的行数是多少?您的加载 DataFrame 代码是什么?因为我没有加载 DataFrame 的经验问题。
    • 嗨,一旦我将其转换为 csv,我就能够进行滚动求和。但是,如果我希望滚动总和是每年,我应该在代码中添加什么?
    • @karate - 你认为将.rolling('3H') 更改为.rolling('Y') 吗?
    • 没有。我计划仍然每 3 小时使用一次滚动总和。但每年最高的 3 小时滚动总和将是我的输出..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    相关资源
    最近更新 更多