python - 从数组列表创建数据框(不同的形状)
问题描述
我正在尝试将不同形状的数组列表转换为数据框。
import numpy as np
import pandas as pd
data = [np.array([[1, 2], [1, 3], [1, 1]]),
np.array([[1, 2, 3], [3, 1, 2], [3, 2, 1]])]
names = ['A', 'B']
df = pd.DataFrame(data=data, columns=names)
df
但是,这给出了错误-
ValueError: Shape of passed values is (2, 1), indices imply (2, 2)
然后我尝试了-
df = pd.DataFrame(np.array([None, *data], dtype=object)[1:]).T
df
0 1
0 [[1, 2], [1, 3], [1, 1]] [[1, 2, 3], [3, 1, 2], [3, 2, 1]]
这不是我想要的输出。
我希望每个内部列表作为单独的行,如下所示:
A B
0 [1, 2] [1, 2, 3]
1 [1, 3] [3, 1, 2]
2 [1, 1] [3, 2, 1]
不知道如何进行。
解决方案
尝试:
pd.DataFrame(dict((k,list(v)) for k,v in zip(names, data)))
输出:
A B
0 [1, 2] [1, 2, 3]
1 [1, 3] [3, 1, 2]
2 [1, 1] [3, 2, 1]
推荐阅读
- xml - 如何在字段上设置过滤器以在 24 小时内获取数据?
- php - 为什么设计布局在 auth:make 命令中的 laravel 中不起作用
- php - 内存不足formatting.php第4651行
- java - 通过ppk文件和用户名连接cassandra
- java - FooLand 城市的奶牛
- c# - 如何解决波斯历中的闰年
- node.js - 试图让 nginx 代理使用 docker 在 node.js 的端口 80 和 443 上工作
- unit-testing - 如何将 TDD 用于预期对某些输入不执行任何操作的方法?
- android - 如何在片段中使用 onBackPressed() 来支持 webview?
- javascript - 反应 | 如何通过 id/class 获取 div 的长度?