水年时间序列:每年针对自定义的非日历年日期重新采样

时间:2018-07-17 00:58:32

标签: python pandas dataframe nonetype resampling

我正在写我的第一个循环,因为重采样不允许我使用自定义开始日期进行年度采样。我的目标是对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次迭代,然后再打印出结果。

1 个答案:

答案 0 :(得分:0)

您的函数没有return,这就是为什么它在运行结束时会产生NoneType的原因。在for循环之前创建一个变量,向其中添加不同的new_value,然后在for循环完成之后返回该变量。