我每天都有1983年至2019年这段时间的气象数据集。我正在做一些数据处理,我想创建一个函数,该函数将一个变量的值在特定时期内取一个总和。
这将在代码中多次使用,所以我不想使用.resample('MS')。sum()。此外,我想在编程方面做得更好,所以我试图通过“书面”功能解决这个问题。
所以数据集看起来像这样。我刚刚创建了一个新变量“ MONTH”。但这可能是四分之一或半年。
filled_values['MONTH'] = filled_values['DAY'].dt.strftime('%b %Y')
filled_values.tail(n=2)
out:
DAY RAIN TEMP TMAX TMIN WIND MONTH
13030 2019-03-04 0.1240 22.38 26.500 18.840 1.16 Mar 2019
13031 2019-03-05 0.1900 22.77 29.220 17.510 1.08 Mar 2019
现在我正在尝试创建函数。
prec_sums_per_month = []
def sums_prec(dataset, date, variable_for_sum, new_variable, new_dataset):
for date in dataset.items:
new_dataset[new_variable] = variable_for_sum.sum()
return new_dataset
prec_sums_per_month = sums_prec(filled_values, 'MONTH', 'RAIN', 'RAIN_MONTH', prec_sums_per_month)
print(prec_sums_per_month)
我期望新的DataFrame(或字典?)具有“ MONTH”变量和该月的降雨总和。但是这是我的结果:
TypeError: 'method' object is not iterable