我是编码新手,我通常为此使用 R (stringr),但我也开始学习 Python 的语法。
我有一个数据框,其中一列是从导入的 excel 文件生成的。此列中的值包含大写和小写字符、符号和数字。
我想根据正则表达式模式在数据框中生成第二列,其中仅包含第一列中包含的一些单词。
df = pd.DataFrame(["THIS IS A TEST 123123. s.m.", "THIS IS A Test test 123 .s.c.e", "TESTING T'TEST 123 da."],columns=['Test'])
df
现在,要提取我想要的内容(大写的单词),在 RI 中通常会使用:
df <- str_extract_all(df$Test, "\\b[A-Z]{1,}\\b", simplify = FALSE)
提取不同数据框行中正则表达式的匹配项,即:
* THIS IS A TEST
* THIS IS A
* TESTING T TEST
我找不到类似的 Python 解决方案,最接近的是以下解决方案:
df["Name"] = df["Test"].str.extract(r"(\b[A-Z]{1,}\b)", expand = True)
不幸的是,这不起作用,因为它只导出组而不是正则表达式的匹配项。我尝试了多种策略,但str.extractall似乎也不起作用(“TypeError:插入列的索引与框架索引不兼容)
如何使用 Python 提取我想要的信息?
谢谢!
湖上湖
慕后森
相关分类