汇总索引上的行

时间:2018-08-07 19:02:43

标签: python-3.x pandas

我正在尝试找到一种方法,该方法可以将带有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()看起来很有希望,但我也很难过(类似错误消息)

1 个答案:

答案 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])