擅长:python、mysql、java
<h3>方法1:<code>np.select</code></h3>
<p>对于多条件列,我们可以使用<code>np.select</code>:</p>
<pre><code>m1 = df['col1'].eq('wrongstring')
m2 = df['col1'].eq('correctstring')
m3 = df['col1'].isna() & df['col2'].notna()
df['newcolumn'] = np.select([m1,m2,m3],
[df['col2'], df['col1'], df['col2']],
default='newstring')
col1 col2 newcolumns
0 wrongstring correct correct
1 correctstring correct correctstring
2 correctstring correct correctstring
3 NaN correct correct
4 NaN NaN newstring
</code></pre>
<hr/>
<h3>方法2:<code>Series.mask</code>&<code>Series.fillna</code>:</h3>
<pre><code>df['newcolumn'] = df['col1'].mask(
df['col1'].eq('wrongstring')
).fillna(df['col2']).fillna('newstring')
col1 col2 newcolumn
0 wrongstring correct correct
1 correctstring correct correctstring
2 correctstring correct correctstring
3 NaN correct correct
4 NaN NaN newstring
</code></pre>