在熊猫中找到数字模式

时间:2017-06-29 10:04:29

标签: python pandas

我需要在pandas df中找到与特定模式相对应的行。例如:

df = 

 q1  q2  q3  q4  q5
1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 2.0
1.0 1.0 2.0 1.0 1.0
3.0 1.0 1.0 7.0 1.0

有类似的东西:

>> df == [1.0 1.0 2.0 1.0 1.0] 
>> False
   False
   True
   False

2 个答案:

答案 0 :(得分:2)

您可以使用df.values与列表进行比较,并检查行的所有元素是否等于列表。

(df.values==[1.0, 1.0, 2.0, 1.0, 1.0]).all(axis=1)
Out[334]: array([False, False,  True, False], dtype=bool)

答案 1 :(得分:1)

您似乎希望将numpy arrayall进行比较或 any

print (df ==np.array([1.0, 1.0, 2.0, 1.0, 1.0]))
      q1    q2     q3     q4     q5
0   True  True  False   True   True
1   True  True  False   True  False
2   True  True   True   True   True
3  False  True  False  False   True

mask = (df == np.array([1.0, 1.0, 2.0, 1.0, 1.0])).all(axis=1)
print (mask)
0    False
1    False
2     True
3    False
dtype: bool

或者:

mask = ~(df != np.array([1.0, 1.0, 2.0, 1.0, 1.0])).any(axis=1)
print (mask)
0    False
1    False
2     True
3    False
dtype: bool