将dataFrame转换为list

时间:2016-02-10 15:05:41

标签: python pandas dataframe

我有一个pandas数据帧,我将其转换为numpy数组,如下所示:

df.values

给出以下输出:

array([[2],
       [0],
       [1],
       ..., 
       [0],
       [1],
       [0]], dtype=int64)

但是我想获得如下列表:

[0, 2, 3]

知道怎么做吗?

2 个答案:

答案 0 :(得分:6)

也许您可以使用ilocloc来选择列,然后使用tolist

print df
   a
0  2
1  0
2  1
3  0
4  1
5  0

print df.values
[[2]
 [0]
 [1]
 [0]
 [1]
 [0]]

print df.iloc[:, 0].tolist()
[2, 0, 1, 0, 1, 0]

或者也许:

print df.values.tolist()
[[2L], [0L], [1L], [0L], [1L], [0L]]

print df.iloc[:, 0].values.tolist()
[2L, 0L, 1L, 0L, 1L, 0L]

print df.loc[:, 'a'].tolist()
[2, 0, 1, 0, 1, 0]

print df['a'].tolist()
[2, 0, 1, 0, 1, 0]

但也许你需要flatten

print df.values.flatten()
[2 0 1 0 1 0]

print df.iloc[:, 0].values.flatten()
[2 0 1 0 1 0]

答案 1 :(得分:1)

看起来你有一个包含一列和多行的数据框。请记住,这是一个二维数组,您必须切片第一列,然后列出该列中的值。

这应该这样做:

df[0].values.tolist()

df[0] - 这将选择第一列中的所有值。对于第二列,您使用df[1]第三个df[2],依此类推。

您可以通过运行df.shape来判断数据框的形状。这将告诉您数据框中存在多少行和列,例如(9,1)表示9行1列