我有此专栏:
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")
有什么建议吗?
答案 0 :(得分:3)
我们可以将Series.str.replace
与positive lookbehind
一起使用。
基本上,我们想要的是替换破折号0+
前的一个或多个零((?<=-)
)
df['column'] = df['column'].str.replace('(?<=-)0+', '')
column
0 C-42-17276
1 F-99-201997
2 F-98-204009