重新采样后的KeyError

时间:2014-06-24 14:38:41

标签: pandas

我有两个数据帧df由日期时间索引,df2有列日期(系列)。

在重新取样之前,我可以运行:

>>>> df[df2['Date'][0]]

并获取与日期df2 ['日期'] [0]相对应的所有行,在此示例中为2013-08-07。但是,在白天重新采样之后,我再也无法获得与该日相对应的行:

>>>> df.resample('D', how=np.max)[df2['Date'][0]]    
KeyError: u'no item named 2013-08-07'

虽然那一天在数据集中

>>>> df.resample('D', how=np.max).head()
            | Temp  | etc
Date        |       |
---------------------------
2013-08-07  | 26.1  |
---------------------------
2013-08-08  | 28.2  |
---------------------------
etc

1 个答案:

答案 0 :(得分:0)

我不确定它是否是一个错误,或者它的设计是这样的,或者,如果后者是真的,为什么。但是你可以这样做以获得理想的结果:

In [168]:

df1=pd.DataFrame(np.random.random(100), columns=['Temp'])
df1.index=pd.date_range('2013-08-07',periods=100,freq='5H')
df1.index.name='Date'

In [169]:

df2=pd.DataFrame(pd.date_range('2013-08-07',periods=23, freq='D'), columns=['Date'])

In [170]:
#You can do this
df3=df1.resample('D', how=np.max)
print df3[df3.index==df2['Date'][0]]
              Temp
Date              
2013-08-07  0.8128

[1 rows x 1 columns]

In [171]:
df3[df2['Date'][0]]
#Error