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'])