擅长:python、mysql、java
<p>我想你需要:</p>
<pre><code>print(df1)
fruits_names
0 green apple and banana are sweet fruits
1 how fresh is the banana
2 cherry and opal apple from japan
</code></pre>
<p>使用<code>split</code>和<code>df.explode()</code></p>
<pre><code>df2["fruits"] = df2["fruits"].apply(lambda x: x.split("|"))
df2 = df2.explode("fruits")
print(df2)
</code></pre>
<p>输出:</p>
<pre><code> fruits colors
0 green apple red
0 opal apple red
1 banana yellow
1 cavendish banana yellow
2 cherry black
</code></pre>
<p>把它转换成<code>dict</code></p>
<pre><code>d = {i:j for i,j in zip(df2["fruits"].values, df2["colors"].values)}
</code></pre>
<p>基于条件创建列</p>
<pre><code>df1["colors"] = [[v for k,v in d.items() if k in x] for x in df1["fruits_names"]]
print(df1)
</code></pre>
<p>最终输出:</p>
<pre><code> fruits_names colors
0 green apple and banana are sweet fruits [red, yellow]
1 how fresh is the banana [yellow]
2 cherry and opal apple from japan [red, black]
</code></pre>