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

Python3 Pandas如何按分隔符拆分列并逆透视保留其余指定列

Pandas 按分隔符拆分列为多行并保留指定列的实现方案

以下两种实现方式均无需使用merge操作,可直接得到目标结果:


方法1:高版本Pandas(≥0.25)最简实现

使用内置explode方法完成展开,逻辑最简洁:

import pandas as pd
import numpy as np

# 构造示例数据
data = np.array(['a0','a1,a2','a2,a3'])
pk = np.array([1,2,3])
df = pd.DataFrame({'data': data, 'PK': pk})

# 核心逻辑:先拆分列为列表,再展开列表为多行
result = df.assign(data=df['data'].str.split(',')).explode('data').reset_index(drop=True)
# 调整列名与顺序匹配需求
result = result.rename(columns={'PK': 'pk'})[['data', 'pk']]

输出结果完全符合要求:

data  pk
0   a0   1
1   a1   2
2   a2   2
3   a2   3
4   a3   3

方法2:低版本Pandas兼容实现

如果使用的Pandas版本不支持explode,可以用set_index+stack的组合实现:

# 示例数据构造同上
res = df.set_index('PK')['data']\
        .str.split(',', expand=True)\
        .stack()\
        .reset_index(level=0, name='data')\
        .reset_index(drop=True)
# 调整列名和顺序
res = res.rename(columns={'PK': 'pk'})[['data', 'pk']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 12:15:03