擅长:python、mysql、java
<p>您可以组合数据帧,然后使用<code>apply</code>函数执行正则表达式搜索。在本例中,我将您的<code>re</code>数据帧重命名为<code>r</code>,因为<code>re</code>是模块的名称。首先执行两个数据帧的笛卡尔积。然后在<code>lambda</code>中,在每一行中计算正则表达式<code>regex_search</code>,并输出一个布尔值,指示如果表达式在<code>strings_to_search</code>中存在,搜索是否生成<code>True</code>;如果表达式不存在,则生成<code>False</code>。最后,将数据帧过滤到匹配发生的位置,对<code>strings_to_search</code>进行分组,并生成所有匹配<code>regex_search</code>的列表。你知道吗</p>
<pre><code>import pandas as pd
import re
a["idx"] = 1
r["idx"] = 1
df = a.merge(r, on="idx").drop("idx", axis=1)
df["output"] = df.apply(lambda x: bool(re.compile(x["regex_search"]).search(x["strings_to_search"])), axis=1)
df[df["output"] == True].groupby("strings_to_search")["regex_search"].apply(list)
</code></pre>