ValueError:将字典转换为数据帧时,数组的长度必须相同

2024-04-20 01:43:39 发布

您现在位置:Python中文网/ 问答频道 /正文

在将字典转换为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.数据帧(a)

ValueError:数组的长度必须相同

键是行值,值是其值,列标题可以是任何内容

预期的结果是

var1 LPES
var1 A
var2 F
var2 D
..   .
..   .

Tags: dataframe字典错误hiccmpppdeducation
1条回答
网友
1楼 · 发布于 2024-04-20 01:43:39

^{}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列数据帧,请对元组列表使用扁平列表理解:

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           

相关问题 更多 >