python - ValueError:将字典转换为数据框时,数组的长度必须相同
问题描述
将字典转换为 pd.dataframe 时出现错误
a = {
'var1': [
'LPES',
'A'
],
'var2': [
'F',
'D'
],
'var3': [
'R',
'T',
'EDUCATION',
'A',
'B',
''
],
'var4': [
'HI',
'HI',
''
],
'var5': [
'PP',
'CCM',
'PP',
''
],
'var6': [
'C',
''
]
}
pd.DataFrame(a)
ValueError:数组的长度必须相同
键是行值,值是它的值,列标题可以是任何东西
预计出来的是
var1 LPES
var1 A
var2 F
var2 D
.. .
.. .
解决方案
DataFrame.from_dict
与 一起使用orient='index'
:
df = pd.DataFrame.from_dict(a, orient='index')
print (df)
0 1 2 3 4 5
var1 LPES A None None None None
var2 F D None None None None
var3 R T EDUCATION A B
var4 HI HI None None None
var5 PP CCM PP None None
var6 C None None None None
如果需要 2 列 DataFrame 对元组列表使用扁平列表理解:
df = pd.DataFrame([(k, x) for k, v in a.items() for x in v], columns=['a','b'])
print (df)
a b
0 var1 LPES
1 var1 A
2 var2 F
3 var2 D
4 var3 R
5 var3 T
6 var3 EDUCATION
7 var3 A
8 var3 B
9 var3
10 var4 HI
11 var4 HI
12 var4
13 var5 PP
14 var5 CCM
15 var5 PP
16 var5
17 var6 C
18 var6
推荐阅读
- php - 我尝试使用 PHPMailer 发送电子邮件,但出现错误:
- javascript - 如何编写可重用和模块化的 Redux 选择器?
- mysql - 如何通过聚合和标记来编写a?
- python - 如何在 Selenium for Python 上由 .click() 打开的新选项卡上使用 driver.current_url
- php - 无法在 html 表单中获取 id 值
- odata - 更正 UI5 中 Edm.Int16 数据类型的 filterOperator
- javascript - 错误:必须使用解构状态分配
- python - sklearn predict() 函数对于逐行预测来说太慢了
- c# - NReco.ImageGenerator 不显示图像和样式
- sql-server - SQL Server 中是否有类似预处理器指令的东西,尤其是#DEFINE?