我正在尝试找到一种方法,该方法可以将带有PeriodIndex的几行汇总(组成一个平面列表)作为前滚窗口。我希望窗口为2个季度(或6个月)。当使用rolling('2Q')时,我得到一个非单调的索引错误,如果在滚动函数之前尝试.resample(),我将得到一个非唯一值的索引错误。我不想删除重复的索引,因为我想一次获得2个索引(所有此类行)的滚动窗口。
样本数据(日期为索引):
date html_text
2011Q1 [a, b, c]
2011Q1 [d, e, f]
2011Q2 [j, k, l]
2011Q2 [m, n, o]
2011Q3 [u, v, w]
2011Q3 [x, y, z]
...
我还将添加滚动窗口正在for循环中进行计算,该循环通过我的日期索引为:
for period in sorted(set(df.index))[:-2]:
对于解决方案的偏爱是,它查看的periodIndex等于[period:period + 2]。这当然不起作用,因为period不是整数。
编辑:这是我正在寻找的结果:
date html_text
2011Q1 [j, k, l, m, n, o, u, v, w, x, y, z]
2011Q2 ...
.groupby()看起来很有希望,但我也很难过(类似错误消息)
答案 0 :(得分:0)
我建议先在date
上分组(您可以1df.reset_index()1创建date
列),因此:
df = df.reset_index()
foo= df.groupby('date').agg(lambda x: [i for j in x for i in j])
foo.set_index('date')
boo = foo.rolling('2Q').gg(lambda x: [i for j in x for i in j])