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

如何高效将Pandas DataFrame指定列按逗号拆分并多行展开?

高效拆分Pandas DataFrame列并展开多行的方案

针对千万级数据集,优先使用Pandas内置的矢量化操作,避免循环或手动拼接,推荐str.split() + explode()的组合,性能最优。

代码示例

  1. 构造模拟数据集(匹配你的数据结构):
import pandas as pd

df = pd.DataFrame({
    'Name': ['bob', 'sally'],
    'Categories': ['a,b,c,d', 'b,d,f']
})
  1. 拆分并展开列:
# 按逗号将Categories列拆分为列表格式
df['Categories'] = df['Categories'].str.split(',')
# 将列表型列展开为多行
df_exploded = df.explode('Categories').reset_index(drop=True)
  1. (可选)实现Name列仅首行显示的格式:
    如果需要和你给出的输出格式一致,让重复的Name值显示为空,可添加以下处理:
df_exploded['Name'] = df_exploded['Name'].where(~df_exploded['Name'].duplicated(), '')

方案高效性说明

  • str.split()是Pandas优化的矢量化字符串方法,比逐行遍历拆分快数十倍;
  • explode()是专门为列表型列展开设计的内置函数,底层用C实现,处理1200万级数据的性能远优于手动构建新DataFrame。

额外处理建议

如果你的Categories列存在空格(比如格式为a, b, c),可以在拆分时同时去除空格:

df['Categories'] = df['Categories'].str.split(',').str.strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:40:47