我有一个像这样的二维(或更多)熊猫DataFrame:
>>> import pandas as pd
>>> df = pd.DataFrame([[0,1],[2,3],[4,5]], columns=['A', 'B'])
>>> df
A B
0 0 1
1 2 3
2 4 5
现在,假设我有一个类似numpy的数组,np.array([2,3])
并想检查是否有任何df
与我的数组内容匹配的行。这里的答案显然应该是正确的,但是例如。np.array([1,2])
应该返回false,因为没有行同时在A列和B列中都包含2。
当然这很容易,但是现在看不到。
事实证明,这确实很容易,以下是这里的工作:
>>> ((df['A'] == 2) & (df['B'] == 3)).any()
True
>>> ((df['A'] == 1) & (df['B'] == 2)).any()
False
也许有人想出了一个更好的解决方案,它允许直接传递数组和要匹配的列列表。
注意,圆括号df['A'] == 2
不是可选的,因为&
运算符的绑定强度与==
运算符一样强。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句