将数据框转换为列表

12
我有一个pandas数据框,我将其转换为numpy数组,如下所示:
df.values

生成以下输出:

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

然而,我希望获得以下列表:
[0, 2, 3]

有什么办法可以做到这一点吗?

你是指 df.values.tolist() 吗? - EdChum
2个回答

18
也许您可以使用 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]

4

看起来您有一个只有一列但多行的数据框。请记住这是一个二维数组,您需要切片第一列,然后列出该列中的值。

以下是应该使用的代码:

df[0].values.tolist()

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接