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

如何从含多行列表的竖线分隔文件创建Pandas DataFrame

解决方案

方法一:改进现有csv.reader代码

你之前的问题是每次循环仅将当前行转为DataFrame,最终只会保留最后一行数据。正确做法是先把所有行收集到列表中,再一次性生成DataFrame,同时处理每行末尾多余的空元素(因每行以|结尾,csv.reader会多解析出一个空列):

import csv
import pandas as pd

myfile = dbdir + '/Data/customer.CR.load'

# 收集所有行数据
all_rows = []
with open(myfile, newline='') as csvfile:
    csvreader = csv.reader(csvfile, delimiter='|')
    for row in csvreader:
        # 取每行前14个元素,去掉末尾空列
        all_rows.append(row[:14])

# 用收集到的所有行生成DataFrame
df = pd.DataFrame(all_rows)

方法二:直接用Pandas的read_csv(更简洁)

Pandas自带的read_csv可直接处理这类分隔符文件,无需手动使用csv.reader,指定分隔符为|并仅读取前14列即可:

import pandas as pd

myfile = dbdir + '/Data/customer.CR.load'

# 读取文件,指定分隔符,取前14列,无表头
df = pd.read_csv(myfile, delimiter='|', usecols=range(14), header=None)

补充说明

你读取的每行数据会多出一个空元素(比如示例中的['1361886', ..., 'HOLDER', '']),这是因为每行最后以|结尾,csv解析器会把结尾分隔符后的区域也识别为空列,通过row[:14]或usecols=range(14)就能得到你需要的14列数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:15:40