删除dataframe一列中特定字符串后的所有字符

2024-06-10 02:00:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,其中PDF_文本列包含一个从PDF中提取的长文本字符串。每行代表一个不同的PDF文件

我想浏览PDF_文本一栏,每一栏只保留出现在“议员议案通知”或“通知议案”之后以及“新业务”或“新业务”之前的字符

作为第一步,我在通知安理会成员的动议之前拿出了所有东西:

df['PDF_text'] = df['PDF_text'].str.replace(r"^.+?(?=NOTICE OF COUNCIL MEMBERS MOTIONS)", "")

问题:

  1. 无论如何,是否有必要将此与一项或一项声明结合起来,以删除安理会成员通知前的任何文本动议或经通知的动议

  2. 我将如何修改此代码,然后删除之后的任何内容,并包括“新业务”(无论是否为CAP)

感谢您的帮助!编辑是因为我意识到我的第一个解决方案并没有完全满足我的要求


Tags: 文件数据字符串text文本dfpdf成员
1条回答
网友
1楼 · 发布于 2024-06-10 02:00:06

尝试使用str.extract

>>> df["PDF_text"].str.extract(r'(?<=NOTICE OF COUNCIL MEMBERS MOTIONS)(.*?)(?=New Business)', re.IGNORECASE)

(?<=...)在第一个字符串前面的位置匹配(安理会成员动议通知)

(?=...)在后跟第二个字符串(新业务)的位置匹配

.*匹配beween中的所有内容

相关问题 更多 >