如何从Pandas单元格中获取模式的所有出现?有可能吗?
name_pattern = r'([A]u?[-_\s]?[0-9]{2})'
df["Result"] = df["Name"].str.extract(name_pattern, flags=re.IGNORECASE)
示例文字:
Qui使用doloremque A-12 veritatis dolor optio temporibus nobis fugit。 Inventore excepturi quis nulla。 Dolor ratione Z-99 optio doloribus voluptas veritatis voluptatem。 Asperiores sd aperiam sint A-99 voluptatem A-66 exercitationem。
我希望df ["结果"]为[" A-12"," A-99"," A-66&# 34]
答案 0 :(得分:1)
你应该可以使用
df["Result"] = (df["Name"].str.extractall(name_pattern, flags=re.IGNORECASE)
.groupby(level=0)[0].apply(list))
会导致以下df
:
Name Result
0 Qui voluptates doloremque A-12 veritatis dolor... [A-12, A-99, A-66]
不幸的是,有bug阻止它在0.18.0和0.18.1中工作 - 它在开发版本中得到修复,0.19.0不会出现此问题。在此期间,您也可以
df["Result"] = df["Name"].apply(lambda x: re.findall(name_pattern, x, flags=re.IGNORECASE))