【发布时间】:2018-03-31 09:28:28
【问题描述】:
我有这个:
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>)
测试它我发现它与整个初始字符串匹配,并且具有不同子字符串的组。最后,我希望 group(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
我真的看不出我做错了什么,如果能帮助我达到我想要的结果,我将不胜感激。谢谢!
【问题讨论】:
标签: python pandas replace substring extract