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

如何在Pandas多列上执行str.split与explode操作?

Pandas DataFrame多列拆分并展开的实现方法

你的需求可以通过调整现有代码实现,核心是确保每一行中需要拆分的列拆分后的列表长度一致,这样explode就能正确对应每一组元素。另外注意处理分隔符前后的空格,避免展开后字符串带多余空格。

完整实现代码

import pandas as pd

# 基于你的原始DataFrame执行操作
df2 = (df.set_index(['Name', 'Source'])
        # 按实际分隔符|拆分,同时自动去除元素前后的空格
        .apply(lambda x: x.str.split(r'\s*\|\s*').explode())
        .reset_index())

关键细节说明

  • 分隔符处理:使用正则表达式r'\s*\|\s*'拆分,可匹配|前后的任意空格,避免拆分后元素带有多余空白字符(比如原数据中类似Data Scientist| Data Analyst的格式,拆分后会得到干净的Data Scientist和Data Analyst)。
  • 多列适配:apply会遍历所有非索引列执行拆分逻辑,只要每一行中Title、City、Country拆分后的列表长度完全一致,explode就会将对应位置的元素展开为同一行,完美匹配你需要的对应关系。
  • 索引还原:最后通过reset_index()将之前设置为索引的Name、Source列重新转为普通列,恢复DataFrame的常规结构。

结果验证

运行上述代码后,输出的DataFrame结构和内容将完全符合你给出的期望格式,每一行的Title、City、Country一一对应,且无多余空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:17:20