我有一系列数据框,所有数据框都包含一年的连续降雨数据和指示是否发生洪水的二进制数据。我希望计算出在给定的时间间隔/以上降雨阈值之内发生或未发生洪水的天数。我的数据看起来像这样:
date ppt fld
01/01/2016 0.23 0
02/01/2016 1.6 0
03/01/2016 10.5 1
04/01/2016 25.4 1
05/01/2016 0.3 0
06/01/2016 6.5 1
07/01/2016 11.2 1
08/01/2016 5.5 0
...
我已应用以下代码使用掩码分割单个数据帧:
mask5 = df['ppt3'] >= 5
ppt5 = df[~mask5] #Under 5mm
ppt5p = df[mask5] #Over 5mm
mask10 = ppt5p['ppt3'] >= 10
ppt10 = ppt5p[~mask10] #5-10mm
ppt10p = ppt5p[mask10] #Over 10mm
mask20 = ppt10p['ppt3'] >= 20
ppt20 = ppt10p[~mask20] #10-20mm
ppt20p = ppt10p[mask20] #Over 20mm
然后使用以下代码来计算每个间隔的计数:
print(ppt5['fld'].value_counts()) #Under 5mm
print(ppt10['fld'].value_counts()) #5-10mm
print(ppt20['fld'].value_counts()) #10-20mm
print(ppt20p['fld'].value_counts()) #Over 20mm
产生以下内容:
0.0 3
1.0 0
Name: SzT, dtype: int64
0.0 1
1.0 1
Name: SzT, dtype: int64
0.0 0
1.0 2
Name: SzT, dtype: int64
0.0 0
1.0 1
Name: SzT, dtype: int64
所以这告诉我,在小于5毫米的所有日子里,都没有洪水发生。在5到10毫米之间的日子里,有一天有洪水,有一天没有洪水。在这两天中,发生10至20毫米之间的洪水,而在发生20毫米以上的当天发生洪水。好东西。
但是我有20个数据框可以做到这一点,关于如何加快/更有效地执行此过程,是否有任何想法?
非常感谢