我有一个数据框:
df = pd.DataFrame({'id' : ['abarth 1.4 a','abarth 1 a','land rover 1.3 r','land rover 2',
'land rover 5 g','mazda 4.55 bl'],
'series': ['a','a','r','','g', 'bl'] })
我想从相应的id中删除'series'字符串,因此最终结果应该是:
最终结果应该是'id': ['abarth 1.4','abarth 1','land rover 1.3','land rover 2','land rover 5', 'mazda 4.55']
目前我正在使用df.apply:
df.id = df.apply(lambda x: x['id'].replace(x['series'], ''), axis =1)
但这会删除字符串的所有实例,甚至换句话说,如下所示:
'id': ['brth 1.4','brth 1','land ove 1.3','land rover 2','land rover 5', 'mazda 4.55']
我应该混合并匹配regex和df.apply中的变量吗?
df.id = df.apply(lambda x: x['id'].replace(r'\b' + x['series'], ''), axis =1)
使用
str.split
和str.get
并仅在df.make == ''
处使用loc
分配考虑一个带有
loc
的正则表达式解决方案,它在第一个空格之前提取所有内容:或者,使用numpy的
where
,它允许if/then/else条件逻辑:如果我正确地回答了您的问题,您可以使用
replace
函数:相关问题 更多 >
编程相关推荐