<p>在代码中,使用<code>regex</code>作为<code>regex code</code>的过滤器,然后添加<code>regex=True</code>作为子字符串替换,最后一个lambda应该省略:</p>
<pre><code>df['qs_key'] = df.filter(regex='^ext').replace('^xxx', '', regex=True).apply(''.join, axis=1)
print (df)
text ext_nms ext_dt ext_cd ext_addr qs_key
0 Stonetrust CRR xxx xxx xxx CRR
1 Wilkes CRR xxx xxx xxx CRR
2 wcv 0086967 05 xxx xxx COD xxx COD
3 SILVER INC xxx xxx xxx ADD ADD
4 PO BOX 988 xxx xxx xxx ADD ADD
5 LA 70520 xxx xxx xxx ADD ADD
6 02/12/2019 xxx DAT xxx xxx DAT
</code></pre>
<p>如果可能有多个值,需要首先将<code>^xxx</code>替换为缺少的值,然后重新填充缺少的值,最后按位置查看第一列:</p>
<pre><code>df['qs_key'] = df.filter(regex='^ext').replace('^xxx', np.nan, regex=True).bfill(axis=1).iloc[:, 0]
print (df)
text ext_nms ext_dt ext_cd ext_addr qs_key
0 Stonetrust CRR xxx xxx xxx CRR
1 Wilkes CRR xxx xxx xxx CRR
2 wcv 0086967 05 xxx xxx COD xxx COD
3 SILVER INC xxx xxx xxx ADD ADD
4 PO BOX 988 xxx xxx xxx ADD ADD
5 LA 70520 xxx xxx xxx ADD ADD
6 02/12/2019 xxx DAT xxx xxx DAT
</code></pre>