<p>我们可以使用<a href="https://numpy.org/doc/stable/reference/generated/numpy.unique.html" rel="nofollow noreferrer">^{<cd1>}</a>和<code>return_index=True</code>来查找每个唯一值的第一个实例:</p>
<pre><code>import numpy as np
import pandas as pd
elements = ['a', 'b', 'c', 'd']
df = pd.DataFrame({
'mycol': ['a', 'x', 'y', 'e', 'b', 'c', 'o', 'l', 's', 'd', 'g']
})
# Find the first location where each unique value is found
a, b = np.unique(df['mycol'], return_index=True)
# Compare unique values to values we're looking for
m = (a == np.array(elements)[:, None])
# If we have a location for all elements
if m.any(axis=1).all():
# Find the highest index value
max_index = b[m.any(axis=0)].max()
# Offset index by one to match expected output
print('All values found by', max_index + 1)
else:
# We couldn't find all elements
print('Not all elements found.')
</code></pre>
<pre><code>All values found by 10
</code></pre>
<hr/>
<p>具有混合顺序和重复项的示例:</p>
<pre><code>elements = ['a', 'b', 'c', 'd']
df = pd.DataFrame({
'mycol': ['d', 'x', 'c', 'a', 'b', 'c', 'o', 'd', 's', 'd', 'g']
})
</code></pre>
<pre><code> mycol
0 d
1 x
2 c
3 a
4 b
5 c
6 o
7 d
8 s
9 d
10 g
All values found by 5
</code></pre>
<p>未找到所有元素的示例:</p>
<pre><code>elements = ['a', 'b', 'c', 'z']
df = pd.DataFrame({
'mycol': ['d', 'x', 'c', 'a', 'b', 'c', 'o', 'd', 's', 'd', 'g']
})
</code></pre>
<pre><code> mycol
0 d
1 x
2 c
3 a
4 b
5 c
6 o
7 d
8 s
9 d
10 g
Not all elements found. # (No z)
</code></pre>