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

如何将字典的键与值元组元素分别存入DataFrame三列?

解决Python字典转指定格式DataFrame的问题

我来帮你搞定这个需求!先给你解释下为啥rules.values()[1]会报错:在Python 3里,字典的values()方法返回的是一个视图对象(不是可直接索引的列表),所以没法直接用下标取元素。如果要按索引访问某个值,得先把它转成列表,比如list(rules.values())[1]就能正常获取第二个值了。

接下来是实现字典转目标DataFrame的具体方案:

完整代码示例

import pandas as pd

# 你的原始字典
rules = {(1, 5): ((2,), 1.0), (2, 5): ((1,), 1.0), (4,): ((2,), 1.0), (5,): ((1, 2), 1.0)}

# 构建DataFrame的数据源列表
data_rows = []
for key, value_tuple in rules.items():
    # 从键值对中提取三列数据
    col1 = key
    col2 = value_tuple[0]  # 值元组里逗号前的部分
    col3 = value_tuple[1]  # 值元组里逗号后的数值
    data_rows.append([col1, col2, col3])

# 生成指定列名的DataFrame
result_df = pd.DataFrame(data_rows, columns=["Col1", "Col2", "Col3"])

# 查看结果
print(result_df)

代码说明

  • 用rules.items()遍历字典,能同时拿到每个键和对应的值;这里的值本身是一个元组(比如((2,), 1.0)),直接通过索引[0]和[1]就能拆分出你需要的Col2和Col3内容。
  • 把所有行数据收集到data_rows列表后,传入pd.DataFrame()就能快速生成带指定列名的DataFrame。

运行结果

输出的DataFrame会完全符合你的要求:

Col1     Col2  Col3
0  (1, 5)    (2,)    1.0
1  (2, 5)    (1,)    1.0
2    (4,)    (2,)    1.0
3    (5,)  (1, 2)    1.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:36:11