熊猫提取列的子字符串并放入同一列

时间:2020-03-09 23:01:59

标签: python pandas replace

我有此专栏:

C-042-00000017276
F-099-00000201997
F-98-204009

我希望此列为

C-42-17276
F-99-201997
F-98-204009

我知道如何通过regex表达式提取数据,并且可以遍历行解决它,但是我想用更多的熊猫风格:

我正在尝试提取“-”符号之间的字符串对。

df['column'] = df['column'].str.replace(r'-.*',df['column'].str.extract(r'(-.*-)',expand=False).str.replace('-','').str.lstrip('0'))

但是我得到了

TypeError("repl must be a string or callable")

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我们可以将Series.str.replacepositive lookbehind一起使用。
基本上,我们想要的是替换破折号0+前的一个或多个零((?<=-)

df['column'] = df['column'].str.replace('(?<=-)0+', '')

        column
0   C-42-17276
1  F-99-201997
2  F-98-204009