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

Pandas处理CSV时字符串分隔错位、列表join操作报错求解

解决方案

分隔符错位问题修复

核心逻辑为通过正则匹配清除字母之间的错误分隔符,先拼接破碎的完整单词,再统一分隔符格式:

  • 匹配规则:单个英文字母后紧跟|/,且后一位仍是英文字母的场景,直接删除中间的分隔符
  • 额外处理:清除连续冗余的分隔符、首尾多余分隔符,统一将单词分隔符转为|

代码逻辑与join问题修复

原代码核心问题:

  • intersect1被定义为字符串类型,直接将列表转字符串拼接后结构异常,无法执行join操作
  • 最终转DataFrame时将字符串拆分为单个字符,输出结果不符合预期

修改逻辑:

  • 将intersect1定义为列表,存储每行计算得到的交集结果
  • 每行交集计算完成后先执行|拼接,再存入列表,最终直接生成DataFrame即可

完整代码

import pandas as pd
import re

# 分隔符修复辅助函数
def fix_separator(raw_str):
    # 替换字母之间的|或,,拼接破碎单词
    fixed = re.sub(r'([a-zA-Z])[|,](?=[a-zA-Z])', r'\1', str(raw_str))
    # 把连续的|或,统一替换为单个|
    fixed = re.sub(r'[|,]+', r'|', fixed)
    # 清除首尾的分隔符
    fixed = fixed.strip('|,')
    return fixed

data = pd.read_csv('data.csv')
# 初始化结果存储列表
intersect_result = []

for j in range(len(data)):
    # 处理第一列内容
    x = fix_separator(data.iloc[j, 1])
    x_list = x.split("|")
    # 处理第二列内容
    y = fix_separator(data.iloc[j, 2])
    y_list = y.split("|")
    # 计算交集
    intersect = list(set(x_list) & set(y_list))
    # 拼接为|分隔的字符串存入结果列表
    intersect_result.append("|".join(intersect))

# 生成DataFrame并导出
df3 = pd.DataFrame(intersect_result, columns=['intersect_content'])
df3.to_csv('intersect1.csv', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:24:02