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

如何将不规则字典列表匹配DataFrame行并合并为新DataFrame?

解决字典列表与DataFrame合并问题

直接用pandas将字典列表转换成新的DataFrame,再和原DataFrame按行索引合并,最后把缺失值填充为0即可,完全适配大数据量场景:

import pandas as pd

# 原DataFrame
df = pd.DataFrame({
    'Name': ['John', 'Ken', 'Smith', 'Kate', 'Tom'],
    'City': ['NY', 'London', 'Boston', 'York', 'Paris'],
    'Age': [25, 32, 29, 21, 42]
})

# 字典列表
dict_list = [
    {'A': 15, 'B': 35, 'D': 10},
    {'C': 124, 'E': 36},
    {'A': 3, 'F': 10},
    {},
    {'B': 4, 'A': 8, 'C': 1}
]

# 转换字典列表为DataFrame,自动对齐所有键为列
dict_df = pd.DataFrame(dict_list)

# 按列合并两个DataFrame,填充缺失值为0
result_df = pd.concat([df, dict_df], axis=1).fillna(0)

# 可选:将字典生成的列转为整数类型(匹配示例输出格式)
result_df = result_df.astype({col: int for col in dict_df.columns})

print(result_df)

关键步骤说明

  • pd.DataFrame(dict_list):自动识别所有字典的键作为列名,缺失键的位置填充NaN,完美处理字典长度不一致、键不统一的问题
  • pd.concat([df, dict_df], axis=1):因为字典列表和原DataFrame行一一对应,索引完全匹配,合并时不会出现错位
  • .fillna(0):批量替换所有缺失值为0,无需手动处理空字典或缺失键的情况
  • 类型转换步骤是为了让输出和示例完全一致,若允许浮点型可以省略

运行后输出结果与你期望的完全一致,且该方法是pandas原生向量操作,处理百万级数据也能保证效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 08:10:13