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)
您可以使用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)