Python 如何将向量数组转换为数据帧?

Python 如何将向量数组转换为数据帧?,python,pandas,numpy,Python,Pandas,Numpy,我有以下数组列表: [array([2, 1, 4, 1]), array([2, 4, 4, 2]), array([2, 2, 4, 0])] 我想将其转换为一个数据帧,标题为“Vectors”,如下所示: "1x4 Vectors" 0 [2, 1, 4, 1] 1 [2, 4, 4, 2] 3 [2, 2, 4, 0] 我试着用 pd.DataFrame(name_of_data_with_vectors, columns = "4x1 Vectors") 但是,我得到了以下

我有以下数组列表:

[array([2, 1, 4, 1]), array([2, 4, 4, 2]), array([2, 2, 4, 0])]
我想将其转换为一个数据帧,标题为“Vectors”,如下所示:

   "1x4 Vectors"
0 [2, 1, 4, 1]
1 [2, 4, 4, 2]
3 [2, 2, 4, 0]
我试着用

pd.DataFrame(name_of_data_with_vectors, columns = "4x1 Vectors")
但是,我得到了以下错误:
AssertionError:1列已传递,传递的数据有4列

最简单的方法可能是对构造函数使用
dict

import pandas as pd
import numpy as np

arrays = [np.array([2, 1, 4, 1]), np.array([2, 4, 4, 2]), np.array([2, 2, 4, 0])]
df = pd.DataFrame(pd.Series(arrays), columns = ['1x4 Vectors'])

print(df)

    1x4 Vectors
0  [2, 1, 4, 1]
1  [2, 4, 4, 2]
2  [2, 2, 4, 0]
In [17]: data = [array([2, 1, 4, 1]), array([2, 4, 4, 2]), array([2, 2, 4, 0])]

In [18]: pd.DataFrame({'4x1 Vectors':data})
Out[18]:
    4x1 Vectors
0  [2, 1, 4, 1]
1  [2, 4, 4, 2]
2  [2, 2, 4, 0]
注意,
pandas
在设计时没有考虑数组作为元素的用例。这就是为什么构造函数试图将数据参数解释为
3x4
dataframe,而不是
3x1

或者,更改列表的“形状”,并将
参数设置为一系列列表:

In [21]: pd.DataFrame([[d] for d in data], columns=['4x1 vectors'])
Out[21]:
    4x1 vectors
0  [2, 1, 4, 1]
1  [2, 4, 4, 2]
2  [2, 2, 4, 0]

但我再说一遍:你几乎肯定不想这样做
DataFrames
不能很好地将数组作为元素使用。

最简单的方法可能是为构造函数使用
dict

In [17]: data = [array([2, 1, 4, 1]), array([2, 4, 4, 2]), array([2, 2, 4, 0])]

In [18]: pd.DataFrame({'4x1 Vectors':data})
Out[18]:
    4x1 Vectors
0  [2, 1, 4, 1]
1  [2, 4, 4, 2]
2  [2, 2, 4, 0]
注意,
pandas
在设计时没有考虑数组作为元素的用例。这就是为什么构造函数试图将数据参数解释为
3x4
dataframe,而不是
3x1

或者,更改列表的“形状”,并将
参数设置为一系列列表:

In [21]: pd.DataFrame([[d] for d in data], columns=['4x1 vectors'])
Out[21]:
    4x1 vectors
0  [2, 1, 4, 1]
1  [2, 4, 4, 2]
2  [2, 2, 4, 0]

但我再说一遍:你几乎肯定不想这样做<代码>数据帧不能很好地将数组作为元素使用。

这不是向量数组,而是数组列表。我不确定你想用数组的数据帧来完成什么,但可能有更好的方法。我会马上编辑它。这不是数据帧应该如何工作的。这只会让你的工作更难。不要将numpy数组存储在数据帧单元格中。这不是向量数组,而是数组列表。我不确定你想用数组的数据帧来完成什么,但可能有更好的方法。我会马上编辑它。这不是数据帧应该如何工作的。这只会让你的工作更难。不要将numpy数组存储在DataFrame单元格中。因此,为了避免DataFrame不喜欢数组的问题,我应该将数组转换为列表?@IsaacA dataframes也不能很好地处理列表。听起来你确实想要一个dataframe,但需要其他容器。嗯,你有什么建议?@IsaacA除非你详细说明你的用例,否则我不能说。所以,为了避免dataframe不喜欢数组的问题,我应该将数组转换成列表?@IsaacA dataframes也不能很好地处理列表。听起来你确实想要一个数据帧,但需要一个其他的容器。嗯,你有什么建议吗?@IsaacA除非你详细说明你的用例,否则我真的不能说。