如何将列表中的多个字典转换为pandas DataFrame的对应列
实现代码
首先导入依赖库:
import pandas as pd import numpy as np
你给出的原始数据定义如下:
NaN = np.nan cols = [ {'A':['Orange', 'Lemon', NaN, 'Peach']}, {'B':['Tiger', NaN, NaN, 'Lion']}, {'C':['London', 'New York', 'Bangalore', NaN]}, {'D':['Cricket', 'BaseBall', 'Football', 'Tennis']} ]
方法1:合并为单个字典后构造DataFrame(最简洁高效)
先将列表中的所有单键字典合并为一个总字典,再直接传入pd.DataFrame构造即可:
# 合并所有单键字典为一个总字典 merged_dict = {key: value for item in cols for key, value in item.items()} # 构造DataFrame df = pd.DataFrame(merged_dict)
方法2:用concat拼接各列生成的DataFrame
如果后续遇到不同字典内列表长度不一致的场景可以用这种方法,会自动补全NaN:
df = pd.concat([pd.DataFrame(d) for d in cols], axis=1)
最终生成的DataFrame结构如下:
| A | B | C | D |
|---|---|---|---|
| Orange | Tiger | London | Cricket |
| Lemon | NaN | New York | BaseBall |
| NaN | NaN | Bangalore | Football |
| Peach | Lion | NaN | Tennis |
内容的提问来源于stack exchange,提问作者Shiva
相关产品推荐
相关产品推荐

