我将假设
Time和
Product是中的列
Dataframe,
df是的实例
Dataframe,而其他变量是标量值:
现在,您必须引用
Dataframe实例:
k1 = df.loc[(df.Product == p_id) & (df.Time >= start_time) & (df.Time < end_time), ['Time', 'Product']]
由于
&运算符与比较运算符之间的优先级,因此括号也是必需的。该
&运算符实际上是一个重载的按位运算符,其优先级与算术运算符相同,而算术运算符的优先级又高于比较运算符。
在
pandas0.13中,
Dataframe.query()将提供一种新的实验方法。这与子集对
select参数取模非常相似:
与
query()您一起这样做:
df[['Time', 'Product']].query('Product == p_id and Month < mn and Year == yr')这是一个简单的例子:
In [9]: df = Dataframe({'gender': np.random.choice(['m', 'f'], size=10), 'price': poisson(100, size=10)})In [10]: dfOut[10]: gender price0 m 891 f 1232 f 1003 m 1044 m 985 m 1036 f 1007 f 1098 f 959 m 87In [11]: df.query('gender == "m" and price < 100')Out[11]: gender price0 m 894 m 989 m 87您感兴趣的最终查询甚至可以利用链式比较,如下所示:
k1 = df[['Time', 'Product']].query('Product == p_id and start_time <= Time < end_time')


