我假设query()和select是DataFrame中的列,df是DataFrame的实例,并且其他变量是标量值:
现在,您必须引用267396558165272222实例:
k1 = df.loc[(df.Product == p_id) & (df.Time >= start_time) & (df.Time < end_time), ['Time', 'Product']]
括号也是必需的,因为query()运算符相对于比较运算符具有较高的优先级。 select运算符实际上是重载按位运算符,其优先级与算术运算符相同,而算术运算符的优先级高于比较运算符。
在query() 0.13中,将提供新的实验267396558165272222688方法。 它与267396558165272222自变量的模子集极为相似:
使用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]: df
Out[10]:
gender price
0 m 89
1 f 123
2 f 100
3 m 104
4 m 98
5 m 103
6 f 100
7 f 109
8 f 95
9 m 87
In [11]: df.query('gender == "m" and price < 100')
Out[11]:
gender price
0 m 89
4 m 98
9 m 87
您感兴趣的最终查询甚至可以利用链式比较,如下所示:
k1 = df[['Time', 'Product']].query('Product == p_id and start_time <= Time < end_time')
如果觉得《python的dataframe的mul_熊猫-子集Python DataFrame》对你有帮助,请点赞、收藏,并留下你的观点哦!