我需要在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
答案 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 array
与all
进行比较或
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