<p>为了节省修改大量脚本以清理各个列的工作量,请按以下步骤执行:</p>
<ol>
<li>首先将不需要处理的数据提取到另一个数据帧中</li>
<li>使用提取的行重新定义<code>df</code>,以便使用副本进行处理</li>
<li>使用原始语法运行清理脚本</li>
<li>使用<code>.sort_index()</code>将那些不用于处理行(从步骤1)的返回到已清理的结果(从步骤3)以恢复其原始顺序</李>
</ol>
<hr/>
<pre><code>df1 = df.loc[df['flag'] != 'Not feasible'] # Step 1
df = df.loc[df['flag'] == 'Not feasible'].copy() # Step 2
# Run your cleaning codes with original syntax # Step 3
df['age'] = df['age'].replace('[^\d.]', '', regex=True).astype(float)
df[['col4','col5']] = df[['col4','col5']].apply(lambda x: x.astype(str).str.replace('\W',''))
df['Contact'] = df['Contact'].replace('[^\d.]', '', regex=True).astype(float)
df = pd.concat([df, df1]).sort_index() # Step 4
</code></pre>
<p>结果:</p>
<pre><code>print(df)
name age Contact col4 col5 col6 flag
0 NKJ 48.0 96754789.0 8886H AHBZ Not feasible
1 Tom 27 98468300.0 ^686H ANKZ feasible
2 Mike 28.0 78915359.0 3256H AK9Z Not feasible
3 NKJ 48.0 96754789.0 8886H AHBZ Not feasible
4 JKN8 35.0 96451188.0 3566H NK4Z Not feasible
</code></pre>
<p>未处理的数据合并回已清理的数据。在<code>pd.concat()</code>之后用<code>.sort_index()</code>保持原始行序列</p>