将 PandasDataFrame 转换为列表列表

我有一个这样的熊猫数据框架:

admit   gpa  gre  rank
0  3.61  380     3
1  3.67  660     3
1  3.19  640     4
0  2.93  520     4

现在我想得到一个熊猫行的列表,比如:

[[0,3.61,380,3], [1,3.67,660,3], [1,3.19,640,4], [0,2.93,520,4]]

我该怎么做?

125681 次浏览

有一个内置的方法也是最快的方法,在 .values np 数组上调用 tolist:

df.values.tolist()


[[0.0, 3.61, 380.0, 3.0],
[1.0, 3.67, 660.0, 3.0],
[1.0, 3.19, 640.0, 4.0],
[0.0, 2.93, 520.0, 4.0]]

你可以这样做:

map(list, df.values)

编辑: as_matrix自0.23.0版本以来已不再推荐使用

你可以在数据帧上使用内置的 valuesto_numpy(推荐选项)方法:

In [8]:
df.to_numpy()


Out[8]:
array([[  0.9,   7. ,   5.2, ...,  13.3,  13.5,   8.9],
[  0.9,   7. ,   5.2, ...,  13.3,  13.5,   8.9],
[  0.8,   6.1,   5.4, ...,  15.9,  14.4,   8.6],
...,
[  0.2,   1.3,   2.3, ...,  16.1,  16.1,  10.8],
[  0.2,   1.3,   2.4, ...,  16.5,  15.9,  11.4],
[  0.2,   1.3,   2.4, ...,  16.5,  15.9,  11.4]])

如果您显式需要列表而不是数字数组,请添加 .tolist():

df.to_numpy().tolist()