我需要删除以下单位的前缀:
系列
units = pd.Series(['msec','mg','ml','mmol', 'mdmg'])
结果:
clean_units = pd.Series(['sec','g','l','mol','dmg'])
我尝试使用units.str.lstrip('m')
,但这不适用于'mmol',因为它会去除两个'm'。
我也尝试过units.str.replace(r'^m.*$','')
,但是它用空字符串替换了整个单词'mmol'。
如何以向量化方式去除左侧找到的“精确”子字符串?
答案 0 :(得分:2)
您可以将str.replace
与正则表达式^m{1}
一起使用,后者仅一次替换前一个m
:
units.str.replace('^m{1}', '', regex=True)
0 sec
1 g
2 l
3 mol
dtype: object
或只是剪切了第一个字母,但它的安全性和通用性较低:
units.str[1:]
0 sec
1 g
2 l
3 mol
dtype: object