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

如何用Python(优先Pandas)合并因换行拆分的字符串行?

处理跨行拆分字符串的Python方案(优先Pandas)

方法一:先预处理文件再导入Pandas

如果数据文件体积不大,可以先完成跨行内容的合并,再导入Pandas处理:

# 读取目标文件
with open('your_data_file.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()

merged_content = []
i = 0
total_lines = len(lines)
while i < total_lines:
    current_line = lines[i].strip()
    # 判断当前行是否是被拆分的上半段(匹配示例里的"-\"结尾格式)
    if current_line.endswith('-\"'):
        # 提取下一行内容,去掉开头的空格和分隔符"-"
        next_line = lines[i+1].strip().lstrip('-')
        # 合并两行,移除分隔符
        combined_line = current_line[:-2] + next_line + '"'
        merged_content.append(combined_line)
        i += 2  # 跳过已处理的下一行
    else:
        merged_content.append(current_line)
        i += 1

# 转成Pandas DataFrame
import pandas as pd
df = pd.DataFrame(merged_content, columns=['content'])

方法二:直接在Pandas中处理

如果已经将数据导入Pandas(此时拆分的内容是独立行),可以用以下逻辑合并:

import pandas as pd

# 假设df是已导入的DataFrame,目标列名为'content'
df['content'] = df['content'].str.strip()

# 标记需要合并的行:当前行以"-\"结尾,且下一行以"-"开头
merge_mask = df['content'].str.endswith('-\"') & df['content'].shift(-1).str.startswith('-')

# 遍历需要合并的行索引
for idx in df[merge_mask].index:
    # 提取并拼接内容,移除分隔符
    upper_part = df.loc[idx, 'content'][:-2]
    lower_part = df.loc[idx+1, 'content'].lstrip('-')
    df.loc[idx, 'content'] = f'{upper_part}{lower_part}"'
    # 标记被合并的行待删除
    df.loc[idx+1, 'content'] = None

# 删除已被合并的空行
df = df.dropna().reset_index(drop=True)

注意事项

  • 以上代码针对你给出的"xxx-和 -xxx"格式编写,若分隔符位置、格式有变化,需调整endswith、startswith的匹配参数
  • 如果存在一行拆分为多行的情况,可以多轮执行合并逻辑,直到没有需要合并的行为止

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:32:08