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

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

嘿,这个转换需求我之前也碰到过,给你两个实用的方法,轻松搞定:

方法1:用apply逐行构建字典(直观易理解)

这个方法逻辑很直接,对DataFrame的每一行做自定义转换,把Length、Width、Height三个字段打包成列表放到Size里:

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]
})

# 转换为目标格式
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)

方法2:先创建Size列再转换(性能更优)

如果你的DataFrame数据量很大,推荐用这个方法——先通过向量化操作生成Size列,再转成字典列表,比逐行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]
})

# 先把三个列的值打包成列表,生成Size列
df["Size"] = df[["Length", "Width", "Height"]].values.tolist()

# 只保留需要的字段,转换为字典列表
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]}
]

内容的提问来源于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:15