我有一个日期数组dateref,想要获取pandas数据帧数据的值 由dateref过滤(仅包含dateref中包含的日期的值):
我试过这个,但它不起作用:
df: Out[36]: rec.array([ (datetime.date(2007, 4, 10), 105),
df[df.date== dateref ]
data.date:日期数组
data.value:值数组
编辑:这个返回错误
data[data.date.isin(dateref)]
AttributeError: 'numpy.ndarray' object has no attribute 'isin'
答案 0 :(得分:2)
我认为你需要numpy.in1d
:
data[np.in1d(data.date, dateref)]
样品:
import numpy as np
import datetime as datetime
test = np.array([datetime.date(2007, 4, 10),
datetime.date(2007, 5, 10),
datetime.date(2007, 6, 10)])
states = [datetime.date(2007, 4, 10),
datetime.date(2007, 5, 10)]
mask = np.in1d(test, states)
print mask
[ True True False]
print test[mask]
[datetime.date(2007, 4, 10) datetime.date(2007, 5, 10)]