擅长:python、mysql、java
<p>一种有效的方法是下拉到<code>numpy</code>并查询各个列:</p>
<p>数据来自@jezrael。在</p>
<pre><code>import pandas as pd, numpy as np
df = pd.DataFrame({'A':list('abadef'),
'B':[4,5,4,5,5,4],
'C':[7,8,7,4,2,3],
'D':[1,3,1,7,1,0],
'E':[5,3,5,9,2,4],
'F':list('aaabbb')})
vals = df.values
arr = [4, 7, 1, 5]
mask = np.logical_and.reduce([vals[:, i+1]==arr[i] for i in range(len(arr))])
res = df.iloc[np.where(mask)[0]]
print(res)
# A B C D E F
# 0 a 4 7 1 5 a
# 2 a 4 7 1 5 a
</code></pre>