【问题标题】:Convert dataFrame to list将数据帧转换为列表
【发布时间】:2016-05-21 00:16:18
【问题描述】:

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

df.values

给出以下输出:

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

但是我想获取如下列表:

[0, 2, 3]

知道怎么做吗?

【问题讨论】:

  • 你的意思是df.values.tolist()?

标签: python pandas dataframe


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    应该这样做:

    df[0].values.tolist()
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      相关资源
      最近更新 更多