如何将数据框的值存储在单个列表中

Far*_*rid 5 python list dataframe pandas

我有以下名为 table 的 pandas 数据框,并希望将其所有单元格值存储在一个列表中:

table = pd.DataFrame({'col-1':[2,7,13,16,23,26,27,29], 'col-2':[541,3,0,15,329,525,6,28], 'col-3':[0,571,0,9,9,0,62,0]}, index=['row-1','row-2','row-3','row-4','row-5','row-6','row-7','row-8'])
Run Code Online (Sandbox Code Playgroud)

最终输出应该是这样的:

my_list = [2,7,13,16,23,26,27,29,541,3,0,15,329,525,6,28,0,571,0,9,9,0,62,0]
Run Code Online (Sandbox Code Playgroud)

如果您能教我完成这项任务的最有效方法,我将不胜感激。干杯。

Vik*_*bey 0

一个可能的解决方案是使用melt()

my_list = table.melt()['value'].tolist()
print(my_list)
Run Code Online (Sandbox Code Playgroud)

或者,您也可以尝试使用 @DavidK's Answer 的变体to_numpy(),这是pandas推荐的,并且也在这个问题中进行了讨论:

my_list = df.T.to_numpy().ravel().tolist()
print(my_list)
Run Code Online (Sandbox Code Playgroud)
my_list = df.T.to_numpy().reshape(-1).tolist()
print(my_list)
Run Code Online (Sandbox Code Playgroud)

任一情况下的输出

[2, 7, 13, 16, 23, 26, 27, 29, 541, 3, 0, 15, 329, 525, 6, 28, 0, 571, 0, 9, 9, 0, 62, 0]
Run Code Online (Sandbox Code Playgroud)