如何高效将特定结构的字典转换为Pandas DataFrame
解决字典列表转Pandas DataFrame的问题
首先注意你给出的输入结构存在语法错误:{{key1:v1,key2:v2},{key1:v3,key2:v4}} 是无效的,因为Python中集合不能包含不可哈希的字典对象。正确的结构应该是字典组成的列表:
d = [{'key1': 'v1', 'key2': 'v2'}, {'key1': 'v3', 'key2': 'v4'}]
针对这种每个子字典对应一行数据的结构,有两种高效解决方法:
方法1:直接使用DataFrame构造器
Pandas的DataFrame()构造函数可以直接接收字典列表作为输入,自动将子字典的键映射为列名,每个子字典对应一行数据:
import pandas as pd d = [{'key1': 'v1', 'key2': 'v2'}, {'key1': 'v3', 'key2': 'v4'}] df = pd.DataFrame(d) print(df)
输出结果:
key1 key2 0 v1 v2 1 v3 v4
方法2:使用from_dict并指定orient='records'
如果你一定要用from_dict()方法,需要显式设置orient='records'参数(默认orient='columns'是按列解析数据),告诉Pandas按行记录的方式解析:
df = pd.DataFrame.from_dict(d, orient='records')
执行后同样会得到你期望的DataFrame结构。
内容的提问来源于stack exchange,提问作者Peslier53
相关产品推荐
相关产品推荐

