我正在尝试根据两个条件获取DataFrame的子集。
这是我的简化示例:
import pandas as pd
test = pd.DataFrame(np.ones(48),
index=pd.date_range('2015-01-01',
periods=48,
freq='1800S'))
我现在想要得到时间范围t中的所有值> 08:00和t< 22:00,我试过了:
result = test[test.index.hour>8 & test.index.hour<22]
然后我得到ValueError that the truth value of an array with more than one element is ambiguous, use a.any() or a.all()
- 这里我运气不好......
答案 0 :(得分:2)
有两个简单的解决方案:
(test.index.hour > 8) & (test.index.hour<22)
由于运营商和优先答案 1 :(得分:1)
在使用逐元素&
之前,您需要在两个数组周围放置括号:
(test.index.hour > 8) & (test.index.hour < 22)
&
运算符的higher precedence比该表达式中的比较运算符高{{3}},这会导致问题。