如何对MultiIndex DataFrame进行升采样?

时间:2018-07-02 14:41:12

标签: python pandas multi-index

我有一个MultiIndex DataFrame,其中一个级别的DateTimeIndex

dates = pandas.date_range('20180101', periods=10)
index = pandas.MultiIndex.from_product([dates, list('ABC')])
df    = pandas.DataFrame(index=index, 
                         columns=list('1234'), 
                         data=numpy.random.randn(30,4))

我想对此进行升采样以进行细微的向前填充。

我发现了以下方法

df.unstack().resample('T').ffill().stack()

df = df.groupby(pandas.Grouper(freq='T', level=0)).ffill()

但是,两者都占用大量内存,而使用我的数据集,我得到的是MemoryError

在弃用之前,我可以使用Panel表示我的数据集,每个日期使用一个DataFrame

pnl  = pandas.Panel(items=dates, 
                    major_axis=list('ABC'), 
                    minor_axis=list('1234'), 
                    data=numpy.random.rand(120).reshape(10,3,4))

对面板进行超采样非常简单:

pnl = pnl.resample('T').ffill()

如何在内存高效的庄园中对MultiIndex DataFrame进行升采样?

0 个答案:

没有答案