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

Pandas如何从字典列表创建DataFrame并动态对齐月度item数据

Pandas实现保单条目与月度数据动态匹配方案

实现逻辑

核心是将每个月份的条目与数值映射为以条目名为索引的序列,再按索引做全外连接拼接,条目不存在的月份自动填充NaN,新增月份无需修改核心处理代码,可自动适配。

完整实现代码

import pandas as pd

# 原始数据集,后续新增月份直接按相同结构往列表追加字典即可
collection = [{'item': ['Policy Master 1-2022-2023-P0003 - 5 Days - Plan 3', 'Policy Master 2-2022-2023-P0009 - 5 Days - Plan 3', 'Policy Master 3-2022-2023-P0012 - 5 Days - Plan 3', 'Policy Master 1-2022-2023-P0003 - 5 Days - Plan 2', 'Policy Master 2-2022-2023-P0009 - 5 Days - Plan 2'], 'Mar': [2800.0, 600.0, 600.0, 1000.0, 200.0]}, {'item': ['Policy Master 1-2022-2023-P0003 - 5 Days - Plan 3', 'Policy Master 2-2022-2023-P0009 - 5 Days - Plan 3', 'Policy Master 3-2022-2023-P0012 - 5 Days - Plan 3', 'Policy Master 1-2022-2023-P0003 - 5 Days - Plan 2'], 'Jun': [2800.0, 600.0, 600.0, 1000.0]}]

series_container = []
for block in collection:
    items = block['item']
    # 自动识别当前块内所有月份字段,兼容单块存多个月份数据的场景
    for month, values in block.items():
        if month == 'item':
            continue
        series_container.append(pd.Series(values, index=items, name=month))

# 按条目名拼接所有月份数据,匹配不上的位置自动填充NaN
result = pd.concat(series_container, axis=1)
# 可选:将索引转为普通数据列,适配常规表格导出/展示需求
result = result.reset_index().rename(columns={'index': 'item'})

效果说明

  • 处理后Policy Master 2-2022-2023-P0009 - 5 Days - Plan 2条目在Jun列会自动显示为NaN,完全符合匹配规则
  • 新增月份数据时,只要保持和现有数据相同的字典结构追加到collection列表即可,不需要调整核心处理逻辑,自动适配所有新增月份
  • 如需将NaN替换为其他占位值(比如0),追加一行result = result.fillna(0)即可按需调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:46:03