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

如何用Pandas按分隔符拆分DataFrame单列并生成多列?

解决方法

首先得处理字符串首尾的引号,不然拆分后列会带多余的引号,具体步骤如下:

  • 先去除BODY列每个字符串首尾的双引号:
    df['BODY'] = df['BODY'].str.strip('"')
    
  • 再按逗号拆分并展开为3列,用n=2限定拆分次数,确保刚好得到3列(避免部分行逗号过多导致列数不一致):
    split_cols = df['BODY'].str.split(',', expand=True, n=2)
    
  • 给新列命名:
    split_cols.columns = ['列1', '列2', '列3']
    
  • 按需选择后续操作:
    # 直接替换原DataFrame
    df = split_cols
    
    # 或合并到原DataFrame(保留原BODY列)
    df = pd.concat([df, split_cols], axis=1)
    
完整示例

假设你的初始DataFrame是这样:

BODY
0        "AAAA,BBBB,CCC"
1        "XXX,YYY,ZZZ"
...
293      "AAA,BBB,CCC"

执行完整代码:

import pandas as pd

# 假设这是你从SQL查询得到的DataFrame
# df = pd.read_sql_query(your_sql_statement, your_database_connection)

# 处理引号并拆分列
df['BODY'] = df['BODY'].str.strip('"')
split_cols = df['BODY'].str.split(',', expand=True, n=2)
split_cols.columns = ['Col1', 'Col2', 'Col3']

# 替换原DataFrame为拆分后的结果
df = split_cols

执行后就能得到包含3列的目标DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:27:07