通过基于“_”拆分文本来替换熊猫列

Sha*_*noo 6 python dataframe python-3.x pandas

我有一个如下所示的熊猫数据框

import pandas as pd
df = pd.DataFrame({'col':['abcfg_grp_202005', 'abcmn_abc_202009', 'abcgd_xyz_8976', 'abcgd_lmn_1']})
df

    col
0   abcfg_grp_202005
1   abcmn_abc_202009
2   abcgd_xyz_8976
3   abcgd_lmn_1
Run Code Online (Sandbox Code Playgroud)

我想在“col”中的 _ 之前将“col”替换为第一个实例。如果在 _ 之后的第三个实例中有一个数字,则将其附加到“col”的末尾,如下所示

    col
0   abcfg
1   abcmn
2   abcgd
3   abcgd_1
Run Code Online (Sandbox Code Playgroud)

May*_*wal 3

您可以使用df.apply

In [1441]: df['col'] = df.col.str.split('_', expand=True).apply(lambda x: (x[0] + '_' + x[2]) if len(x[2]) == 1 else x[0], axis=1)

In [1442]: df
Out[1442]: 
       col
0    abcfg
1    abcmn
2    abcgd
3  abcgd_1
Run Code Online (Sandbox Code Playgroud)