如何将含元组键值对的Python字典转换为Pandas DataFrame
转换元组键值对字典为指定结构的Pandas DataFrame
方法一:列表推导式直接生成数据
先定义目标字典,通过列表推导式遍历每个键值对,拆分元组元素后直接转换为DataFrame并指定列名:
import pandas as pd # 原始字典 my_dict = {(1, 2): (3, 4), (4, 5): (5, 9)} # 拆分键和值,生成结构化数据列表 data = [(k1, k2, v1, v2) for (k1, k2), (v1, v2) in my_dict.items()] # 转换为目标DataFrame df = pd.DataFrame(data, columns=['key1', 'key2', 'val1', 'val2']) print(df)
运行输出:
key1 key2 val1 val2 0 1 2 3 4 1 4 5 5 9
方法二:分步拆分索引与列
如果需要保留分步处理逻辑,可以先将字典转为以元组为索引的DataFrame,再拆分索引和列:
import pandas as pd my_dict = {(1, 2): (3, 4), (4, 5): (5, 9)} # 以键为索引、值为列生成初始DataFrame df = pd.DataFrame.from_dict(my_dict, orient='index', columns=['val1', 'val2']) # 重置索引,将元组索引转为普通列 df.reset_index(inplace=True) # 拆分索引列的元组为key1和key2 df[['key1', 'key2']] = pd.DataFrame(df['index'].tolist(), index=df.index) # 调整列顺序并删除临时索引列 df = df[['key1', 'key2', 'val1', 'val2']].drop('index', axis=1) print(df)
两种方法都能得到目标结构的DataFrame,方法一简洁高效,适合多数场景。
内容的提问来源于stack exchange,提问作者user2667066
相关产品推荐
相关产品推荐

