我有一个带有一列列表的熊猫数据框。
df:
    inputs
0   [1, 2, 3]
1   [4, 5, 6]
2   [7, 8, 9]
3   [10, 11, 12]
Run Code Online (Sandbox Code Playgroud)
我需要矩阵
array([[ 1,  2,  3],
      [ 4,  5,  6],
      [ 7,  8,  9],
      [10, 11, 12]])
Run Code Online (Sandbox Code Playgroud)
一个有效的方法来做到这一点?
注意:当我尝试df.inputs.as_matrix()输出时
array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]], dtype=object)
Run Code Online (Sandbox Code Playgroud)
它有形状(4,),不(4,3)符合要求。
您可以将列转换为列表,然后应用 numpy 数组,如果列中的所有列表都具有相同的长度,这将生成一个二维数组:
arr = np.array(df.inputs.tolist())
#array([[ 1,  2,  3],
#       [ 4,  5,  6],
#       [ 7,  8,  9],
#       [10, 11, 12]])
arr.shape
# (4, 3)
Run Code Online (Sandbox Code Playgroud)
或者另一个选项用于.values首先访问 numpy 对象,然后将其转换为 @piRSquared 评论的列表,这在给出的示例中稍微快一点:
%timeit df.inputs.values.tolist()
# 100000 loops, best of 3: 5.52 µs per loop
%timeit df.inputs.tolist()
# 100000 loops, best of 3: 11.5 µs per loop
Run Code Online (Sandbox Code Playgroud)