Query pandas data frame with `or`b boolean?
本问题已经有最佳答案,请猛点这里访问。
我有一个简单的熊猫数据框架。
1 2 3 4 5 6 | import pandas as pd x = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30] y = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600] users =['mark', 'mark', 'mark', 'rachel', 'rachel', 'rachel', 'jeff', 'jeff', 'jeff', 'lauren', 'lauren', 'lauren'] df = pd.DataFrame(dict(x=x, y=y, users=users) |
我想保留数据帧的某些行。让我们说"瑞秋"和"杰夫斯"。我试过
1 | df=df.query('users=="rachel"' or 'users=="jeff"') |
号
结果是只有
标准方法是使用按位或运算符
1 2 3 4 5 6 7 8 | df[(df.users == 'rachel') | (df.users == 'jeff')] users x y 3 rachel 30 200 4 rachel 5 300 5 rachel 10 300 6 jeff 20 400 7 jeff 30 400 8 jeff 5 500 |
使用query,您仍然可以使用or运算符:
1 2 3 4 5 6 7 8 | df.query("users=='rachel' | users=='jeff'") users x y 3 rachel 30 200 4 rachel 5 300 5 rachel 10 300 6 jeff 20 400 7 jeff 30 400 8 jeff 5 500 |
号
另一种方法是:
1 | df=df.query('users=="rachel"').append(df.query('users=="jeff"')) |