如何使用'和'过滤数据框?换句话说,如果我有一个名为m的数据框并且它有a,b,c,d,e列,我将如何返回列b中的值大于120且列c = 7.3中的值的所有行?
我尝试了这个但是我收到了一个错误:
print(m [m ['b']> 120,m ['c'] == 7.3])
答案 0 :(得分:2)
要扩展GoBrewers14的答案,你需要用括号括起来克服python中运算符的求值顺序。
例如,下一个语句失败:
In [3]: 1 > 0 & 'a' < 'b'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-5d58a7b0bade> in <module>()
----> 1 1 > 0 & 'a' < 'b'
TypeError: unsupported operand type(s) for &: 'int' and 'str'
因为python首先评估0 & 'a'
。这就是为什么你需要用括号括起语句才有意义:
In [4]: (1 > 0) & ('a' < 'b')
Out[4]: True
简而言之,您正在寻找:
m[(m['b'] > 120) & (m['c'] == 7.3)]
答案 1 :(得分:0)
>>> mask = (m.b > 120) & (m.c == 7.3)
>>> m[mask]