You need to enable JavaScript to run this app. 如何在Pandas DataFrame中按条件拆分列值生成对应新行
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中按条件拆分列值生成对应新行

Pandas单列指定条件拆分扩行实现代码
import pandas as pd

# 构造示例原始数据
df = pd.DataFrame({
    'var1': ['a,b,c', 'd,e,f', 'g,h'],
    'var2': [1, 2, 3],
    'var3': ['X', 'Y', 'Z']
})

# 定义var1列处理逻辑
def split_var1(s):
    parts = s.split(',')
    # 逗号个数等于2对应拆分后长度为3,按规则生成两个新值
    if len(parts) == 3:
        return [f"{parts[0]},{parts[2]}", f"{parts[1]},{parts[2]}"]
    # 逗号个数等于1直接返回原内容
    else:
        return [s]

# 应用处理逻辑后展开为新行
df['var1'] = df['var1'].apply(split_var1)
df = df.explode('var1', ignore_index=True)

print(df)

运行后输出结果与要求的目标DataFrame完全一致:

var1  var2 var3
0   a,c     1    X
1   b,c     1    X
2   d,f     2    Y
3   e,f     2    Y
4   g,h     3    Z

逻辑说明

  • 先通过字符串拆分后的长度判断是否符合拆分条件:拆分后长度为3对应2个逗号,符合拆分要求
  • 所有处理结果统一返回列表格式,后续直接调用Pandas内置的explode方法即可完成扩行操作,无需手动循环拼接
  • 最后通过ignore_index=True参数重置结果的行索引,符合常规使用习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 20:21:02