如何根据前缀拆分我的数据帧值



我的数据帧列具有不同的值。我想拆分前缀为172_的值,并更新相同的数据帧。有人能在这里帮我吗。

df_select['tradename_id']=['172_002000026440_AT','172_002000026440_CA','CA_CORPORATE1','CA_LYM_B']
df_select['tradename_id'].str.rsplit("_", n=1, expand=True)
Actual value :172_002000026440_AT
Expected value:172_002000026440

我认为您只需要通过Series.str.startswith创建的掩码来设置新值,在split中删除expand=True并通过索引str[0]:来选择第一个列表

df_select = pd.DataFrame({'tradename_id':['172_002000026440_AT','172_002000026440_CA',
'CA_CORPORATE1','CA_LYM_B']})

m = df_select['tradename_id'].str.startswith('172_')
df_select.loc[m,'tradename_id'] = df_select.loc[m,'tradename_id'].str.rsplit("_", n=1).str[0]
print (df_select)
tradename_id
0  172_002000026440
1  172_002000026440
2     CA_CORPORATE1
3          CA_LYM_B

或者使用Series.update:

m = df_select['tradename_id'].str.startswith('172_')
df_select['tradename_id'].update(df_select.loc[m,'tradename_id'].str.rsplit("_", n=1).str[0])
print (df_select)
tradename_id
0  172_002000026440
1  172_002000026440
2     CA_CORPORATE1
3          CA_LYM_B

最新更新