擅长:python、mysql、java
<p>另一个使用<code>np.select</code>的解决方案应该更快:</p>
<pre><code>conditions = [df_phone['p1'].str.len() == 10, df_phone['p2'].str.len() == 10,\
df_phone['p3'].str.len() == 10]
choices = [df_phone['p1'], df_phone['p2'], df_phone['p3']]
df_phone['phone'] = np.select(conditions, choices, default = '')
</code></pre>
<blockquote>
<p>Documentation:</p>
<ul>
<li><a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.select.html" rel="nofollow noreferrer">np.select</a>: pick the choice for the first <code>True</code> value encountered in conditions. If only <code>False</code>, fill with <code>default</code>.</li>
</ul>
</blockquote>