记录一则群友在微信群里提出的需求,计算多年各月各询的平均降雨量。统计这个多年旬月均值,是为了跟当前年份的旬月值做比较,多了就说明当前月份雨水多,有可能发生洪涝灾害。
群友给的这份数据其实并不完整,日期不是连续的,群友解释缺失的日期表示当天没有下雨。
旬 月 值 = ∑ 每 年 各 月 各 旬 降 雨 量 该 旬 出 现 次 数 旬月值=\frac{\sum每年各月各旬降雨量}{该旬出现次数} 旬月值=该旬出现次数∑每年各月各旬降雨量
首先我们对数据进行简单的清洗。
# 数据文件比较规整,所以用pd.read_csv直接读取
df = pd.read_csv("./10年数据.txt", sep='\t')
# 将数据列的dt改为日期类型,并提取日期作为行索引
df.index = pd.to_datetime(df['dt'], format='%Y-%m-%d').dt.date
# 补全剩余日期,范围为2006/1/1-2015/9/30,p值默认为0
df = df.reindex(index=pd.date_range(
start='2006/1/1', end='2015/9/30'), fill_value=0)
# 再一次填补缺失值为0
df.p.fillna(0, inplace=True)
# 删除表中多余的dt列
df.drop('dt', axis=1, inplace=True)
# 日<=10为上旬,0<日