首页 > 解决方案 > 如何从基于行的字典列表创建 Pandas DataFrame

问题描述

我有一个这样的数据结构:

data = [{
  "name": "leopard",
  "character": "mean",
  "skills": ["sprinting", "hiding"],
  "pattern": "striped",
 },
 {
  "name": "antilope",
  "character": "good",
  "skills": ["running"],
 },
 .
 .
 .
]

字典中的每个键都有整数字符串或 字符串列表类型的值(并非所有键都存在于所有字典中),每个字典代表表中的一行;所有行都作为字典列表给出。

如何轻松将其导入 Pandas?我试过

df = pd.DataFrame.from_records(data)

但在这里我得到一个“ValueError:数组必须都是相同的长度”错误。

标签: pythonpandaslistdataframedictionary

解决方案


构造DataFrame函数将基于行的数组(在其他结构中)作为数据输入。因此,以下工作:

data = [{
  "name": "leopard",
  "character": "mean",
  "skills": ["sprinting", "hiding"],
  "pattern": "striped",
 },
 {
  "name": "antilope",
  "character": "good",
  "skills": ["running"],
 }]
df = pd.DataFrame(data)
print(df)

输出:

  character      name  pattern               skills
0      mean   leopard  striped  [sprinting, hiding]
1      good  antilope      NaN            [running]

推荐阅读