如何将 Pandas 数据框转换为单个列表

Ala*_*lan 6 python pandas

假设我有一个数据框:

    col1    col2    col3
0    1       5       2
1    7       13
2    9       1
3            7
Run Code Online (Sandbox Code Playgroud)

如何转换为单个列表,例如:

[1, 7, 9, 5, 13, 1, 7]
Run Code Online (Sandbox Code Playgroud)

我试过了:

df.values.tolist()
Run Code Online (Sandbox Code Playgroud)

但是,这将返回列表列表而不是单个列表:

[[1.0, 5.0, 2.0], [7.0, 13.0, nan], [9.0, 1.0, nan], [nan, 7.0, nan]]
Run Code Online (Sandbox Code Playgroud)

请注意,数据框将包含未知数量的列。只要列表包含数据框中的所有值,值的顺序并不重要。

我想我可以编写一个函数来解压这些值,但是我想知道是否有一种简单的内置方法可以将数据帧转换为系列/列表?

bus*_*ear 11

按照您当前的方法,您可以在将数组转换为列表之前将其展平。如果您需要删除nan值,您也可以在展平后执行此操作:

arr = df.to_numpy().flatten()
list(arr[~np.isnan(arr)])
Run Code Online (Sandbox Code Playgroud)

另外,大熊猫的未来版本似乎更喜欢to_numpyvalues


另一种可能更简洁的方法是“堆叠”您的数据框:

df.stack().tolist()
Run Code Online (Sandbox Code Playgroud)