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

如何将元组键值对的字典数据导入指定结构的空Pandas DataFrame?

问题原因

你直接将字典传入pd.DataFrame()时,pandas会默认把字典的键当作列名、值当作对应列的行数据,但你的字典键是元组,无法匹配指定的列名,所以最终只显示列名却没有导入数据。

正确实现方法

需要先把字典的每个键值对转换成符合列顺序的行数据,再构建DataFrame,有两种简洁的实现方式:

方法1:列表推导式转换数据后创建DataFrame

import pandas as pd

result_dict = {('ABE2', '170xi iii plus'): (1, '1178.55', 1178.55),
               ('ABE2', '170xi4+'): (1, '2844.12', 2844.12),
               ('ABE2', '1900gsr-1'): (30, '115.0', 3450.0)}

# 将字典的键(元组)和值(元组)拼接成每行数据
row_data = [list(key) + list(value) for key, value in result_dict.items()]

# 用转换后的数据创建DataFrame
df_test = pd.DataFrame(row_data, columns=['location_sitecode', 'model_name', 'total_quantity', 'cost_per_device', 'total_cost'])

方法2:使用from_records方法直接构建

import pandas as pd

result_dict = {('ABE2', '170xi iii plus'): (1, '1178.55', 1178.55),
               ('ABE2', '170xi4+'): (1, '2844.12', 2844.12),
               ('ABE2', '1900gsr-1'): (30, '115.0', 3450.0)}

df_test = pd.DataFrame.from_records(
    [list(key) + list(value) for key, value in result_dict.items()],
    columns=['location_sitecode', 'model_name', 'total_quantity', 'cost_per_device', 'total_cost']
)

执行后df_test就会包含所有目标数据,列顺序也和你定义的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:38:09