Python 从数组列表中创建数据帧是否很热?

Python 从数组列表中创建数据帧是否很热?,python,pandas,Python,Pandas,我的数据结构如下: listOfArrays = [array([3, 21, 28]), array([13, 14, 2, 29]), array([2, 21])] 我需要将其转换为具有1列的pandas数据帧: col1 3 21 28 13 14 2 29 2 21 目前,我逐个创建熊猫数据帧: df1 = pd.DataFrame(lisOfLists[0]) df2 = pd.DataFrame(lisOfLists[1]) ... 我使用pd.

我的数据结构如下:

listOfArrays = 
    [array([3, 21, 28]),
     array([13, 14, 2, 29]),
     array([2, 21])]
我需要将其转换为具有1列的pandas数据帧:

col1
3
21
28
13
14
2
29
2
21
目前,我逐个创建熊猫数据帧:

df1 = pd.DataFrame(lisOfLists[0])
df2 = pd.DataFrame(lisOfLists[1])
...
我使用
pd.concat
将它们连接起来


有没有更短的方法?

您可以使用列表理解:

从numpy导入数组
作为pd进口熊猫
listOfArrays=[array([3,21,28])、array([13,14,2,29])、array([2,21])]
df=pd.concat([listOfArrays中的数组的pd.Series(数组)])

您可以使用列表理解:

从numpy导入数组
作为pd进口熊猫
listOfArrays=[array([3,21,28])、array([13,14,2,29])、array([2,21])]
df=pd.concat([listOfArrays中的数组的pd.Series(数组)])
>>pd.DataFrame({“col1”:np.concatenate(listOfArrays,axis=0)})
可乐
0     3
1    21
2    28
3    13
4    14
5     2
6    29
7     2
8    21
>>pd.DataFrame({“col1”:np.concatenate(listOfArrays,axis=0)})
可乐
0     3
1    21
2    28
3    13
4    14
5     2
6    29
7     2
8    21
使用以下方法的解决方案:

输出:

   col1
0     3
1    21
2    28
3    13
4    14
5     2
6    29
7     2
8    21
解决方案使用:

输出:

   col1
0     3
1    21
2    28
3    13
4    14
5     2
6    29
7     2
8    21

您只需将列表加载到数据框中,然后使用
melt

df = pd.DataFrame(listOfArrays).melt()[['value']]
通过
堆栈
重置索引

df = pd.DataFrame(listOfArrays).stack().reset_index()[[0]]
或者也可以使用itertools链:

from itertools import chain
df = pd.DataFrame({'col1':list(chain(*listOfArrays))})

您只需将列表加载到数据框中,然后使用
melt

df = pd.DataFrame(listOfArrays).melt()[['value']]
通过
堆栈
重置索引

df = pd.DataFrame(listOfArrays).stack().reset_index()[[0]]
或者也可以使用itertools链:

from itertools import chain
df = pd.DataFrame({'col1':list(chain(*listOfArrays))})
pd.DataFrame(np.concatenate(listOfArrays),columns=['col1'])
pd.DataFrame(np.concatenate(listOfArrays),columns=['col1'])