我喜欢Pandas中的query
方法。与常规选择方法相比,它速度快,表达能力强,而且冗长。
根据查询,是否可以获得与True
返回的值对应的False
/ query
掩码?
例如,说我有:
my_query = 'values >= {0} and values <= {1}'.format(Q1, Q2)
inliers = df.query(my_query)
inliers
将保存满足查询的数据,但是我是否也可以获取此查询的掩码?
获取掩码非常有用,例如,可以快速否定查询,或者获得与原始数据帧大小相同的结果。
答案 0 :(得分:5)
使用df.eval()
。 df.query()
基本上是df[df.eval()]
In [32]: df = DataFrame(dict(A = range(5)))
In [33]: df
Out[33]:
A
0 0
1 1
2 2
3 3
4 4
In [34]: df.query('A>3')
Out[34]:
A
4 4
In [36]: df.eval('A>3')
Out[36]:
0 False
1 False
2 False
3 False
4 True
dtype: bool