You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将键为元组的字典转换为键值对应列的DataFrame

字典转目标结构pandas DataFrame实现方案

你可以直接通过拆解字典键值对的方式构造DataFrame,代码运行结果完全匹配你给出的预期结构,无额外依赖。

  • 方法1:列表推导直接构造(推荐,可读性最高)
import pandas as pd

# 原始输入字典
raw_data = {('1', 'Jim'): 'Pass',
 ('2', 'Nik'): 'Fail',
 ('3', 'Anna'): 'Pass',
 ('4', 'Bob'): 'Fail',
 ('5', 'Sam'): 'Pass',
 ('6', 'Rob'): 'Fail'}

# 遍历字典拆解元组键和值,直接指定列名生成DataFrame
df = pd.DataFrame(
    [(user_id, user_name, result) for (user_id, user_name), result in raw_data.items()],
    columns=['ID', 'Name', 'Result']
)

# 原始ID是字符串格式,转换为整数匹配预期输出
df['ID'] = df['ID'].astype(int)

运行后打印df得到的输出如下,和你预期的结构完全一致:

ID  Name Result
0   1   Jim   Pass
1   2   Nik   Fail
2   3  Anna   Pass
3   4   Bob   Fail
4   5   Sam   Pass
5   6   Rob   Fail
  • 方法2:pandas原生索引转换写法
    如果你更倾向于用pandas内置的Series转换逻辑,也可以用多重索引重置的方式实现,最终结果和方法1完全相同:
# 先转成带MultiIndex的Series,再重置索引拆分为普通列
df = pd.Series(raw_data, name='Result').reset_index()
# 重命名列为目标名称
df.columns = ['ID', 'Name', 'Result']
# ID类型转换
df['ID'] = df['ID'].astype(int)

注意:Python 3.7+版本字典默认保留插入顺序,以上两种方法生成的DataFrame行顺序和你原始字典的键顺序一致,不需要额外排序。

内容的提问来源于stack exchange,提问作者user10999967

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 06:31:27