<h2>熊猫>;=0.25</h2>
<p>Series和DataFrame方法定义了一个<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.explode.html#pandas.DataFrame.explode" rel="noreferrer"><strong>^{<cd1>}</strong></a>方法,该方法将列表分解为单独的行。请参阅<a href="https://pandas.pydata.org/pandas-docs/stable/user_guide/reshaping.html#exploding-a-list-like-column" rel="noreferrer">Exploding a list-like column</a>的文档部分</p>
<pre><code>df = pd.DataFrame({
'var1': [['a', 'b', 'c'], ['d', 'e',], [], np.nan],
'var2': [1, 2, 3, 4]
})
df
var1 var2
0 [a, b, c] 1
1 [d, e] 2
2 [] 3
3 NaN 4
df.explode('var1')
var1 var2
0 a 1
0 b 1
0 c 1
1 d 2
1 e 2
2 NaN 3 # empty list converted to NaN
3 NaN 4 # NaN entry preserved as-is
# to reset the index to be monotonically increasing...
df.explode('var1').reset_index(drop=True)
var1 var2
0 a 1
1 b 1
2 c 1
3 d 2
4 e 2
5 NaN 3
6 NaN 4
</code></pre>
<p>请注意,这还可以适当地处理列表和标量的混合列以及空列表和NAN(这是基于<code>repeat</code>的解决方案的一个缺点)</p>
<p>但是,您应该注意到,<strong><code>explode</code>只对单个列起作用(目前)</p>
<p>注意:如果您希望分解一列<em>字符串</em>,则需要先在分隔符上拆分,然后使用<code>explode</code>。看到这个(非常)<a href="https://stackoverflow.com/questions/12680754/split-explode-pandas-dataframe-string-entry-to-separate-rows/57122617#57122617">related answer by me.</a></p>