<pre class="lang-py prettyprint-override"><code>pd.DataFrame({'col': ['AA_XX', 'AAA_BB_XX', 'AA_BB_XYX', 'AA_A_B_YXX']})['col'].apply(lambda r: '_'.join(r.split('_')[:-1]))
</code></pre>
<p>解释:</p>
<pre class="lang-py prettyprint-override"><code>df = pd.DataFrame({'col': ['AA_XX', 'AAA_BB_XX', 'AA_BB_XYX', 'AA_A_B_YXX']})
</code></pre>
<p>创造</p>
<pre class="lang-py prettyprint-override"><code> col
0 AA_XX
1 AAA_BB_XX
2 AA_BB_XYX
3 AA_A_B_YXX
</code></pre>
<p>使用“应用”循环浏览要编辑的列。<br/>
我在<code>_</code>处断开字符串,然后连接所有部分,最后一部分在<code>_</code></p>
<pre class="lang-py prettyprint-override"><code>df['col'] = df['col'].apply(lambda r: '_'.join(r.split('_')[:-1]))
print(df)
</code></pre>
<p>结果:</p>
<pre class="lang-py prettyprint-override"><code> col
0 AA
1 AAA_BB
2 AA_BB
3 AA_A_B
</code></pre>
<p>如果数据集包含像<code>AA</code>这样的值(不带下划线的值)。<br/>
像这样改变lambda</p>
<pre class="lang-py prettyprint-override"><code>df = pd.DataFrame({'col': ['AA_XX', 'AAA_BB_XX', 'AA_BB_XYX', 'AA_A_B_YXX', 'AA']})
df['col'] = df['col'].apply(lambda r: '_'.join(r.split('_')[:-1]) if len(r.split('_')) > 1 else r)
print(df)
</code></pre>