我正在写我的第一个循环,因为重采样不允许我使用自定义开始日期进行年度采样。我的目标是对30年时间序列中的每个连续12个月的序列进行汇总,以计算非日历年(10月至9月的水文水年)。数据集从十月份开始,所以我认为我只需将前12行,接下来的12行加起来,依此类推。完美的循环,对吗?两个问题:
1)最简单的方法是将“ n”行加在一起,然后将其输出到按年份编制索引的新DataFrame中。
2)下面是我对问题1的尝试解决方案,它可以工作。但是,输出的数据类型是'NoneType',我无法通过pd.concat与另一个DataFrame合并。我该如何解决?
def Water_Year_Total(Monthly_Data_30yrs):
for i in range((len(Monthly_Data_30yrs))//12):
x=0
y=12
new_value=sum(data[(x+(12*i)):(y+(12*i))])
print(new_value)
for循环首先通过len()函数对行数进行计数,然后将其除以12以获取数据集中的年数,然后对sum循环进行i次迭代,然后再打印出结果。
答案 0 :(得分:0)
您的函数没有return
,这就是为什么它在运行结束时会产生NoneType的原因。在for循环之前创建一个变量,向其中添加不同的new_value
,然后在for循环完成之后返回该变量。