如何使用另一列作为str.extract/all的模式?下面的例子使用了一个硬编码的模式,但我希望Pandas查看Pattern
列中的每一行,并使用该模式进行提取搜索。
df = pd.DataFrame({"Pattern": ['a|c'],
"Files": ['a.csv, b.csv, c.csv, d.csv']})
# explode
df['Files'] = df['Files'].str.split(',')
df = df.explode(['Files'])
# extract
df['Expected'] = df['Files'].str.extract(r'([a|d])') # hardcoded
# expected
Pattern Files Expected
0 a|d a.csv a
0 a|d b.csv NaN
0 a|d c.csv NaN
0 a|d d.csv d
1条答案
按热度按时间pjngdqdw1#
自:
Series.str.extract(pat,flags=0,expand=True)
将正则表达式pat中的捕获组提取为DataFrame中的列。
对于Series中的每个主题字符串,从正则表达式pat的第一个匹配中提取组。
我会在 listcomp 中使用
search
和group
。输出: