Pandas DataFrame列值列在列表中

Nil*_*age 2 python dataframe pandas

我有一只DataFrame像熊猫一样的熊猫

                          clusters
0                              [4]
1                  [9, 14, 16, 19]
2           [6, 7, 10, 17, 18, 20]
3  [1, 2, 3, 5, 8, 11, 12, 13, 15]
Run Code Online (Sandbox Code Playgroud)

我需要分别只获取集群列中的整数值.喜欢以下(这可以是四个列表,不需要另一个DataFrame)

0                              4
1                  9, 14, 16, 19
2           6, 7, 10, 17, 18, 20
3  1, 2, 3, 5, 8, 11, 12, 13, 15
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的东西.无法达到预期的产量.

In [36]: clustlist = list(firstclusters.clusters.values)
Out[36]:   
    [array([4]), array([ 9, 14, 16, 19]), array([ 6,  7, 10, 17, 18, 20]), array([ 1,  2,  3,  5,  8, 11, 12, 13, 15])]

In [37]: np.ravel(clustlist)
Out[37]:
    [array([4]) array([ 9, 14, 16, 19]) array([ 6,  7, 10, 17, 18, 20])
     array([ 1,  2,  3,  5,  8, 11, 12, 13, 15])]

In [38]: np.hstack(clustlist)
Out[38]:
    [ 4  9 14 16 19  6  7 10 17 18 20  1  2  3  5  8 11 12 13 15]
Run Code Online (Sandbox Code Playgroud)

And*_*den 8

如果每个项目只是一个列表,您可以使用tolist Series方法:

In [11]: df.clusters.tolist()
Out[11]: [[4], [9, 14, 16, 19], [6, 7, 10, 17, 18, 20], [1, 2, 3, 5, 8, 11, 12, 13, 15]]
Run Code Online (Sandbox Code Playgroud)

或者,如果这些是numpy数组,您需要首先对每个项目应用tolist:

In [12]: df.clusters.apply(np.ndarray.tolist).tolist()
Out[12]: [[4], [9, 14, 16, 19], [6, 7, 10, 17, 18, 20], [1, 2, 3, 5, 8, 11, 12, 13, 15]]
Run Code Online (Sandbox Code Playgroud)