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

Pandas:从字典列与收入列生成新字典列表

在Pandas中转换字典列表格式的解决方案

假设你的DataFrame结构如下(方便后续代码演示):

import pandas as pd

sample_data = {
    "ID_Name": [
        [{'id': 10, 'name': 'Anna'}, {'id': 15, 'name': 'Bob'}, {'id': 20, 'name': 'Charlie'}, {'id': 25, 'name': 'Donald'}]
    ],
    "AVG_INCOME": [100000]
}
df = pd.DataFrame(sample_data)

要生成你需要的[{name: income}, ...]格式的列表,我们可以用Pandas的apply方法逐行处理数据,核心逻辑是遍历ID_Name中的每个字典,提取name字段并与当前行的AVG_INCOME配对成新字典,最后将这些字典组合成列表。

方法一:自定义函数(可读性更高)

def transform_row(row):
    # 遍历每个字典,生成{name: 收入字符串}的结构
    return [{item['name']: str(row['AVG_INCOME'])} for item in row['ID_Name']]

# 应用函数到每一行,生成新列
df['TARGET_COLUMN'] = df.apply(transform_row, axis=1)

方法二:Lambda表达式(更简洁)

如果想少写几行代码,用lambda表达式也能实现同样效果:

df['TARGET_COLUMN'] = df.apply(
    lambda row: [{item['name']: str(row['AVG_INCOME'])} for item in row['ID_Name']],
    axis=1
)

执行完上述代码后,TARGET_COLUMN列的内容就是你想要的结果:

[{'Anna': '100000'}, {'Bob': '100000'}, {'Charlie': '100000'}, {'Donald': '100000'}]

小提示

  • 示例中把AVG_INCOME转成字符串是因为你给出的目标格式里收入是字符串类型,如果不需要可以去掉str(),直接用row['AVG_INCOME']。
  • 如果你的DataFrame有多行数据,这个方法会自动处理每一行的对应ID_Name和AVG_INCOME,完全适配批量场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:00:38