如何用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
相关产品推荐
相关产品推荐

