从熊猫数据框列中删除编号,换行符,换行符

时间:2020-07-28 15:25:39

标签: python regex pandas

我有一个数据框,其中的列包含换行符,换行符和列表编号的字符串:

df['Side_Effects'][0]
'1.Nausea\n<br/>2.Vomiting\n<br/>3.Diarrhoea\n<br/>4.Anorexia\n<br/>5.Malaise\n<br/>6.Fever\n<br/>7.Pruritis\n<br/>8.Rash\n<br/>9.Headache\n<br/>10.Pharyngitis\n<br/>11.Cough\n<br/>'

首先,我必须从列的所有字符串中删除编号,换行符和br标签。 我尝试过:

df['Side_Effects'].replace(r'\\n',' ', regex=True, inplace=True)

这:

df['Side_Effects'] = df['Side_Effects'].str.replace('</br>','')

但似乎没有任何效果……将不胜感激!!!

2 个答案:

答案 0 :(得分:2)

使用正则表达式和str方法

例如:

df = pd.DataFrame({'Col': ['1.Nausea\n<br/>2.Vomiting\n<br/>3.Diarrhoea\n<br/>4.Anorexia\n<br/>5.Malaise\n<br/>6.Fever\n<br/>7.Pruritis\n<br/>8.Rash\n<br/>9.Headache\n<br/>10.Pharyngitis\n<br/>11.Cough\n<br/>']})
df['New'] = df['Col'].str.replace('(<br/>|\d+\.)','').str.split().agg(" ".join)    #IF you need as list skip .agg(" ".join)
print(df)

输出:

             Col                                 New                                            
0  1.Nausea\n<br/>2.Vomiting\n<br/>3.Diarrhoea\n<...  Nausea Vomiting Diarrhoea Anorexia Malaise Fev...

答案 1 :(得分:2)

您可以使用

df['Side_Effects'] = df['Side_Effects'].str.replace(r'(?m)^(?:<br/>)?\d+\.|<br/>', '').str.strip()

请参见regex demo

详细信息

  • (?m)^-行的开头((?m)re.M / re.MULTILINE标志的内联变体)
  • (?:<br/>)?-可选的<br/>字符串
  • \d+\.-1个或多个数字,然后是.
  • |-或
  • <br/>-仅<br/>字符串。

.str.strip()删除所有结尾的空格。

相关问题