我有一个熊猫数据框,df1,这是一年的5分钟列A-Z的时间序列。熊猫:花式索引数据框
df1.shape
(105121, 26)
df1.index
<class 'pandas.tseries.index.DatetimeIndex'>
[2002-01-02 00:00:00, ..., 2003-01-02 00:00:00]
Length: 105121, Freq: 5T, Timezone: None
我有第二个数据帧,DF2,这是一个长达一年的每天时间序列(较上年同期)相匹配的列。第二帧的值是布尔值。
df2.shape
(365, 26)
df2.index
<class 'pandas.tseries.index.DatetimeIndex'>
[2002-01-02 00:00:00, ..., 2003-01-01 00:00:00]
Length: 365, Freq: D, Timezone: None
我想用DF2作为一个奇特的指数DF1,即“df1.ix [DF2]”或诸如此类,这样我回去每个日期DF1的列的子集 - 即那些DF2在当天说是真的(所有的时间戳都在其上)。因此,结果的形状应该是(105121,宽度),其中宽度是布尔人暗示的不同列数(宽度< = 26)。
目前,df1.ix [df2]仅部分工作。只有每天的00:00值被挑选出来,这对于df2的“点状”时间序列来说是有意义的。
我明年受审的时间跨度为DF2指数:
df2.index
PeriodIndex: 365 entries, 2002-01-02 to 2003-01-01
这一次,我得到一个错误:
/home/wchapman/.local/lib/python2.7/site-packages/pandas-0.11.0-py2.7-linux-x86_64.egg/pandas/core/index.pyc in get_indexer(self, target, method, limit)
844 this = self.astype(object)
845 target = target.astype(object)
--> 846 return this.get_indexer(target, method=method, limit=limit)
847
848 if not self.is_unique:
AttributeError: 'numpy.ndarray' object has no attribute 'get_indexer'
我的临时解决方案是按日期循环,但这似乎效率不高。熊猫是否有这种奇特的索引?我没有看到文档中任何地方的例子。
你可以重新取样'df2'至5分钟,并填写它。 – joris
谢谢 - 应该提到我也尝试过。得到ValueError:无法用多维键索引。 – Will