<p>另一种方法是使用pandas<a href="https://pandas.pydata.org/docs/reference/api/pandas.melt.html" rel="nofollow noreferrer">melt function</a>,如下所示:</p>
<pre><code># split the films column to many columns
df2 = df['films'].str.split(expand = True)
</code></pre>
<p>现在df2是</p>
<pre><code> 0 1 2 3
0 tt2488496 tt7653254 tt7653254 tt2488496
1 tt1596363 tt1386588 tt6266538 None
2 tt7653254 tt2488496 None None
</code></pre>
<p>将这些拆分的列与列名称连接起来</p>
<pre><code>df3= pd.concat([df['Names'], df2], axis = 1)
Names 0 1 2 3
0 Adam tt2488496 tt7653254 tt7653254 tt2488496
1 John tt1596363 tt1386588 tt6266538 None
2 John tt7653254 tt2488496 None None
</code></pre>
<p>使用pandas melt取消填充和放置不必要的柱和NaN'</p>
<pre><code>final_result = pd.melt(df3, id_vars = ['Names'], value_vars = list(df2.columns)).drop(columns = ['variable']).dropna()
</code></pre>
<p>那是</p>
<pre><code> Names value
0 Adam tt2488496
1 John tt1596363
2 John tt7653254
3 Adam tt7653254
4 John tt1386588
5 John tt2488496
6 Adam tt7653254
7 John tt6266538
9 Adam tt2488496
</code></pre>