擅长:python、mysql、java
<p>使用<a href="http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing" rel="nofollow noreferrer">^{<cd1>}</a>:</p>
<pre><code>L = [
[0,1,0,1, 1.0],
[0,1,0,1, 2.0],
[0,1,0,0, 3.0],
[1,1,0,0, 0.5],
]
df = pd.DataFrame(L)
Y = [0,1,0,1]
print (df[df.iloc[:, :len(Y)].eq(Y).all(axis=1)])
0 1 2 3 4
0 0 1 0 1 1.0
1 0 1 0 1 2.0
</code></pre>
<p><strong>说明</strong>:</p>
<p>首先按序列长度选择第一个<code>N</code>列:</p>
^{pr2}$
<p>按<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.eq.html" rel="nofollow noreferrer">^{<cd3>}</a>和<code>loc</code>选择的第一行比较所有行:</p>
<pre><code>print (df.iloc[:, :len(Y)].eq(Y))
0 1 2 3
0 True True True True
1 True True True True
2 True True True False
3 False True True False
</code></pre>
<p>并按<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.all.html" rel="nofollow noreferrer">^{<cd5>}</a>检查是否匹配,以检查每行<code>True</code>s:</p>
<pre><code>print (df.iloc[:, :len(Y)].eq(Y).all(1))
0 True
1 True
2 False
3 False
dtype: bool
</code></pre>