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

如何将Pandas DataFrame转换为包含列表的字典列表?

把Pandas DataFrame转换成含列表的字典列表

嘿,这需求不难搞定!我给你两种实用的方法,都能快速得到你想要的格式:

方法一:先构造Size列再转换(可读性更强)

这种方法先给DataFrame新增一个Size列,把Length、Width、Height三个字段的值合并成列表,再提取需要的列转成字典列表,逻辑非常清晰:

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame({
    "ID": ["A1","B2","C3","D4"], 
    "x": [1,1,2,2], 
    "Length": [10,11,6,8], 
    "Width": [1,1.3,2,1], 
    "Height": [0.5,0.5,0.5,0.5]
})

# 1. 生成Size列:把每行的Length、Width、Height转成列表
df["Size"] = df[["Length", "Width", "Height"]].values.tolist()

# 2. 只保留需要的字段,转成字典列表
list_of_dict = df[["ID", "x", "Size"]].to_dict("records")

# 打印看看结果
print(list_of_dict)

运行后输出就是你要的目标格式:

[
    {"ID":"A1", "x":1, "Size":[10,1,0.5]},
    {"ID":"B2", "x":1, "Size":[11,1.3,0.5]},
    {"ID":"C3", "x":2, "Size":[6,2,0.5]},
    {"ID":"D4", "x":2, "Size":[8,1,0.5]}
]

方法二:用apply逐行构造字典(更直接)

如果不想新增列,也可以直接用apply对每一行处理,直接构造目标字典,最后转成列表,代码更紧凑:

import pandas as pd

df = pd.DataFrame({
    "ID": ["A1","B2","C3","D4"], 
    "x": [1,1,2,2], 
    "Length": [10,11,6,8], 
    "Width": [1,1.3,2,1], 
    "Height": [0.5,0.5,0.5,0.5]
})

list_of_dict = df.apply(
    lambda row: {
        "ID": row["ID"], 
        "x": row["x"], 
        "Size": [row["Length"], row["Width"], row["Height"]]
    },
    axis=1  # 指定按行处理
).tolist()

print(list_of_dict)

这个方法的结果和上面完全一致,适合字段较少的场景,一步到位。

两种方法任选其一就行,根据你的实际数据量和编码习惯来~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:41:30