Pandas-Vectorize Series方法从右侧剥离“精确”子字符串

时间:2019-05-02 17:10:05

标签: python pandas

我需要删除以下单位的前缀:

系列

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'。

如何以向量化方式去除左侧找到的“精确”子字符串?

1 个答案:

答案 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