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

如何用原ID对应新ID列表的字典更新Pandas DataFrame并拆分行

Pandas 字典映射ID拆行实现

实现思路非常直接:先把原DataFrame的ID列按照给定字典替换为对应的列表,再用pandas内置的explode方法把列表拆成独立行,整个过程会自动保留其余列的所有信息。

前置测试数据

先构造匹配场景的测试环境:

import pandas as pd

# 原始DataFrame
df = pd.DataFrame({
    "ID": [1, 2, 7, 8],
    "Name": ["Peter", "John", "Rene", "Dilan"],
    "Last Name": ["Smith", "Allen", "Watson", "Foster"]
})

# 映射字典
id_map = {1: [3, 4], 2: [5, 6], 7: [11], 8:[8]}

两步核心操作

  • 第一步:将ID列的原始值替换为字典中对应的列表
    df["ID"] = df["ID"].map(id_map)
    
    执行后ID列会变为存储列表的序列:[[3,4], [5,6], [11], [8]]
  • 第二步:对ID列执行炸开操作
    result_df = df.explode("ID", ignore_index=True)
    
    传入ignore_index=True会自动重置结果表的行索引,避免拆分后出现重复索引。

结果验证

执行完成后得到的结果完全匹配预期输出:

IDNameLast Name
3PeterSmith
4PeterSmith
5JohnAllen
6JohnAllen
11ReneWatson
8DilanFoster

兼容适配:如果存在未被字典收录的原ID,可将map逻辑调整为df["ID"].map(lambda x: id_map.get(x, [x])),未匹配的ID会默认保留原值,不会触发空值报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 09:54:01