Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从数据框列中删除编号、换行符和打断标记_Python_Regex_Pandas - Fatal编程技术网

Python 从数据框列中删除编号、换行符和打断标记

Python 从数据框列中删除编号、换行符和打断标记,python,regex,pandas,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/&

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

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/>'
这是:

df['Side_Effects'] = df['Side_Effects'].str.replace('</br>','')
df['Side\u Effects']=df['Side\u Effects'].str.replace(“
”,”)

但似乎什么都不管用。。。非常感谢您的帮助

使用正则表达式和
str
方法

Ex:

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...
df=pd.DataFrame({'Col':['1.恶心\n
2.呕吐\n
3.腹泻\n
4.厌食症\n
5.不适\n
6.发烧\n
7.瘙痒\n
8.皮疹\n
9.头痛\n
10.咽炎\n
11.咳嗽\n
df['New']=df['Col'].str.replace('(
\d+\),'').str.split().agg(“.join”)#如果需要as列表,请跳过.agg(“.join”) 打印(df)
输出:

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...
Col新
0 1.恶心\n
2.呕吐\n
3.腹泻\n您可以使用

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

详细信息

  • (?m)^
    -行的开头(
    (?m)
    re.m
    /
    re.MULTILINE
    标志的内联变体)
  • (?:
    )?
    -可选的

    字符串
  • \d+\.
    -1个或多个数字,然后是一个
  • |
    -或

  • -只需

    字符串

.str.strip()。另外,在第一个选项中,尝试用单个反斜杠切换双反斜杠one@Itay感谢
标签上的更正提示,它现在似乎可以工作了。但后一个仍然保持不变…我的意思是“\n”…预期的文本字符串是什么?我知道你发布的输入是一个字符串文字,其中
\n
表示一个LF字符,对吗?
df['Side\u Effects'].str.replace(r'(?m^(?:
))?\d+\.
,'
我认为也有帮助。