擅长:python、mysql、java
<p>我会试试这样的。您需要在较大的数据集上分析性能。在</p>
<pre><code>In [146]: df1
Out[146]:
referer category keywords
0 url int word0,word2,word3
1 url int word1,word3
[2 rows x 3 columns]
In [147]: df2
Out[147]:
id count
index
word0 0 11
word1 1 14
word2 2 14
word3 3 14
[4 rows x 2 columns]
</code></pre>
<p>将<code>keywords</code>列拆分为一个单词列表。通常在数据帧中存储列表对于性能来说是个坏主意,但这是目前最直接的方法。在</p>
^{pr2}$
<p>然后对<code>df2</code>中列表的每个元素应用查找:</p>
<pre><code>In [151]: ids = vals.apply(lambda x: [df2.loc[y, 'id'] for y in x])
In [152]: ids
Out[152]:
0 [0, 2, 3]
1 [1, 3]
Name: keywords, dtype: object
</code></pre>
<p>最后,concat:</p>
^{4}$