擅长:python、mysql、java
<p>但我不相信有比现在更快的解决方案</p>
<pre><code>In [13]: import numpy as np
import pandas as pd
n = 1000
testing = pd.DataFrame({'NAME':[
'FIRST', np.nan, 'NAME2', 'NAME3',
'NAME4', 'NAME5', 'NAME6']*n, 'FULL_NAME':['FIRST LAST', np.nan, 'FIRST LAST', 'FIRST NAME3', 'FIRST NAME4 LAST', 'ANOTHER NAME', 'LAST NAME']*n})
</code></pre>
<p>这是一个很长的一个班轮,但它应该满足你的需要</p>
<p>我能想出的最快解决方案是使用<code>replace</code>,如另一个答案中所述:</p>
^{pr2}$
<p>原始答案:</p>
<pre><code>In [14]: %timeit testing ['NEW'] = [''.join(str(e).split(k)) for e, k in zip(testing.FULL_NAME.astype('str'), testing.NAME.astype('str'))]
100 loops, best of 3: 7.24 ms per loop
</code></pre>
<p>与您当前的解决方案相比:</p>
<pre><code>In [16]: %timeit testing['NEW1'] = testing.apply(address_remove, axis=1)
10 loops, best of 3: 166 ms per loop
</code></pre>
<p>这些方法可以得到与当前解决方案相同的答案</p>