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

如何对Pandas DataFrame多列拆分展开并保持列值关联?

问题:Pandas多列拆分展开时保持列对应关系

原始DataFrame:

id          term            code
2445 | 2716 abcd | efgh     2345
1287        hgtz            6567

需求:对id和term列执行拆分展开操作,同时保持id、term与code列的数值对应关系,预期输出如下:

id          term            code
2445        abcd            2345
2716        efgh            2345
1287        hgtz            6567

当前尝试的代码:

df.assign(id=df['id'].str.split(' | ')).explode('id')

解决方法

要实现多列拆分后保持对应关系,需要同时对id和term列完成拆分,再一起执行explode操作,确保拆分后的每组id与term匹配同一行的code值。

完整可运行代码:

import pandas as pd

# 构造示例数据
data = {
    'id': ['2445 | 2716', '1287'],
    'term': ['abcd | efgh', 'hgtz'],
    'code': [2345, 6567]
}
df = pd.DataFrame(data)

# 拆分多列并同时展开
df = df.assign(
    id=df['id'].str.split(' | '),
    term=df['term'].str.split(' | ')
).explode(['id', 'term'], ignore_index=True)

print(df)

关键说明:

  • 拆分分隔符需与数据中的格式完全一致,这里是' | '(空格+竖线+空格),避免拆分错误
  • explode方法支持传入列名列表,可同时展开多个列,保证对应关系不混乱
  • 添加ignore_index=True可重置结果的索引,让输出更规整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:50:29