在python中,我有一个带有日期列的数据框,从这里我得到df索引到特定日期。
我希望在第二个测试idx中有一个'在日期A和日期B之间'作为过滤器,而不是仅仅按照以下方式使用日期(换句话说,我正在采用较小的子集进行初始测试而不是说一大堆数据)
train_idx = np.array(df.Date < '2016-01-01')
test_idx = np.array(df.Date >= '2016-01-01')
以下是我到目前为止所遇到的错误
df = pd.read_csv('./data.csv', parse_dates=[1])
train_idx = np.array(df.Date < '2016-01-01')
test_idx = np.array(df.Date >= '2016-01-01' and df.Date <='2016-03-01')
返回以下内容 ValueError:Series的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
答案 0 :(得分:1)
将and
替换为&
,如下所示:
(df.Date >= '2016-01-01') & (df.Date <= '2016-03-01')
运算符&
以元素方式运算,而and
尝试将两个系列组合起来,就像它们是单独的布尔值一样。真值是含糊不清的意味着将一系列强制转换为True
或False
并不合理。