我有这样的:提取,并在大熊猫数据框中使用正则表达式替换子
Title
Num
0 <span class="o-label--tiny">VALEUR ÉNERGÉTIQUE</span>
1 <span class="o-label--tiny">PROTÉINES</span>
2 <span class="o-label--tiny">GLUCIDES</span>
<class 'pandas.core.frame.DataFrame'> Num Index(['Title'], dtype='object')
这就是我想要的:
Title
Num
0 VALEUR ÉNERGÉTIQUE
1 PROTÉINES
2 GLUCIDES
这是我公司开发的正则表达式:
(<span class=\"o-label--tiny\">)([a-zA-Z]+\s*\w*)(</span>)
测试它我看到它匹配整个初始字符串,并为不同的子字符串组。最后,我希望组(2)在我的数据框列中。 (我下面的例子显示了明确的正则表达式,但我也尝试了re.compile结果,它不能使我得到最终结果)。
这是我曾尝试:
df['Title'] = df['Title'].replace({'<span class=\"o-label--tiny\">': ''}, inplace=True, regex=True)
结果:
Title
Num
0 None
1 None
2 None
尝试号码2:
df['Title'] = df['Title'].str.replace('<span class=\"o-label--tiny\">', repl = '')
结果数2:
Title
Num
0 NaN
1 NaN
2 NaN
尝试号码3:
df['Title'] = df[lambda df: df.columns[0]].str.extract('(>[a-zA-Z]+\s*\w*)', expand=False)
结果3:
Title
Num
0 NaN
1 NaN
2 NaN
我真的不明白我做错了任何让我期望的结果帮助将不胜感激。谢谢!
您已经发布的答案? – Dark
我刚刚将此添加为评论。你编辑它。我删除我的回答 – Dark
@jezrael:我试过你的代码,但都没有为我工作。我仍然拿到NaN而不是正确的字符串。 ?? – ChiChi