我有以下数据集:
meste = pd.DataFrame({'a':['06/33','40/2','05/22']})
meste
a
0 06/33
1 40/2
2 05/22
并且我想删除文本中的前导 0(例如 06/33 到 6/33)。我尝试了这个,没有成功:
meste['a'] = meste['a'].str.replace(r"(^0?)","")
a
0 06/33
1 40/2
2 05/22
我也尝试过
meste['a'].str.replace(r"(^0?)","")
,但它不起作用。这是预期的结果:
a
0 6/33
1 40/2
2 5/22
请您指出我在正则表达式语句中做错了什么?
你的正则表达式语句几乎是正确的,但你遗漏了一个关键方面:你需要将
regex
参数设置为
True
,以便将你的模式视为正则表达式。默认情况下,
str.replace
方法会将你的模式解释为一个要逐字替换的字符串。
以下是修正后的代码:
meste['a'] = meste['a'].str.replace(r"^0", "", regex=True)
在这个修正后的代码中:
-
r"^0"
是一个正则表达式,表示以“0”开头的字符串。 -
regex=True
明确告诉str.replace
方法将模式解释为正则表达式。
通过这个修改,你的代码就能按预期运行,并生成你想要的结果了。
标签:python,pandas,regex From: 78790594