我的数据帧列具有不同的值。我想拆分前缀为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