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

如何用pd.read_csv()读取交替行文本生成两列pandas DataFrame

pandas读取交替行文本生成目标DataFrame方案

完全可以通过pd.read_csv()实现需求,且性能远高于手动逐行读取拼接,是处理这类格式文件的最优选择。

实现代码

import pandas as pd
import ast

# 按单列完整读取所有非空文本行,避免特殊字符导致的列错位
df = pd.read_csv(
    "your_file.txt",  # 替换为实际文件路径
    header=None,
    names=["raw"],
    skip_blank_lines=True
)

# 奇偶行切片重组为两列结构
result = pd.DataFrame({
    "user": df["raw"].iloc[::2].values,
    "fruits": df["raw"].iloc[1::2].values
})

# 可选:将fruits列从字符串转为原生Python列表
result["fruits"] = result["fruits"].apply(ast.literal_eval)

输出验证

执行后得到的结果完全匹配目标格式:

user                          fruits
0   2022-mary  ['apple', 'oranges', 'pineapple']
1  2022-cindy     ['mango', 'banana', 'berry']
2  2022-andrew         ['coconut', 'cabbage']

方案说明

  • 不建议在read_csv阶段直接拆分两列:水果列包含逗号、引号、方括号等特殊字符,强行指定分隔符极易出现列错位问题,先按单列读入全量内容再做切片重组的鲁棒性最强
  • 读取过程走pandas底层C实现的解析引擎,处理大体积文件时的速度是手动open逐行读取的数倍
  • 奇偶行切片使用pandas原生索引操作,无Python层循环开销,内存占用极低
  • 如果不需要将水果列转为列表对象,可删除ast.literal_eval相关代码,读取速度会进一步提升

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:33:19