【问题标题】:Convert pandas dataframe of lists into numpy array将列表的熊猫数据框转换为numpy数组
【发布时间】:2020-07-15 17:01:48
【问题描述】:

我有以下数据框:

import pandas as pd
import numpy as np

df = pd.DataFrame([{'a': [1,3,2]},{'a': [7,6,5]},{'a': [9,8,8]}])
df

df['a'].to_numpy()
df['a'].to_numpy()

=> array([list([1, 3, 2]), list([7, 6, 5]), list([9, 8, 8])], dtype=object)

如何在不编写 for 循环的情况下获得形状为 (3,3) 的 numpy 数组?

【问题讨论】:

  • 它们(列表)的长度是否总是相同的?
  • @YOBEN_S 是的
  • np.vstack(df['a'].to_numpy())

标签: python arrays pandas numpy dataframe


【解决方案1】:

首先创建嵌套列表,然后转换为数组,只需要所有相同长度的列表:

arr = np.array(df.a.tolist())
print (arr)
[[1 3 2]
 [7 6 5]
 [9 8 8]]

【讨论】:

    【解决方案2】:

    如果总是相同的长度

    pd.DataFrame(df.a.tolist()).values
    array([[1, 3, 2],
           [7, 6, 5],
           [9, 8, 8]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 2018-05-03
      • 1970-01-01
      • 2019-10-12
      • 2017-08-26
      • 2015-06-11
      • 1970-01-01
      相关资源
      最近更新 更多