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

基于指定模式复制Pandas DataFrame中的行

高效拆分DataFrame中含分隔符的行并复制内容

我来帮你搞定这个问题!你需要把DataFrame里最后一列包含分号(;)的行拆分成多行,同时保留其他列的原有内容,pandas里有个非常高效的内置方法——explode(),完全能满足需求,比你尝试的groupby方法简洁太多了。

步骤详解

  1. 构造原DataFrame(先还原你的示例数据):
import pandas as pd

df = pd.DataFrame({
    'A': ['x1', 'x2', 'x3', 'x4'],
    'B': ['b1a', 'b1b', 'b1c', 'b1d'],
    'C': ['Ak', 'Ak', 'Ak;Lo', 'Lo']
})
  1. 拆分分隔值为列表:
    把最后一列(这里是C列)的字符串按分号拆分成列表格式:
df['C'] = df['C'].str.split(';')
  1. 展开列表生成多行:
    用explode()方法把列表中的每个元素拆分成单独的行,同时自动复制其他列的内容:
df_processed = df.explode('C', ignore_index=True)

处理后的结果

运行上述代码后,打印df_processed会得到你想要的结果:

A    B   C
0  x1  b1a  Ak
1  x2  b1b  Ak
2  x3  b1c  Ak
3  x3  b1c  Lo
4  x4  b1d  Lo

为什么这个方法高效?

explode()是pandas优化过的向量化操作,不需要手动写循环或者复杂的分组逻辑,处理大规模数据时的性能远优于自定义的拆分方法。如果你的DataFrame最后一列不是C,只需要把代码里的列名替换成实际列名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:20:30