如何使用pandas读取长度可变的无标题csv

如何使用pandas读取长度可变的无标题csv,pandas,Pandas,我有一个csv文件,它没有标题列,每行都有可变长度的记录 每个记录最多可以有398个字段,我想在我的数据框中只保留256个字段,因为我只需要处理这些字段 下面是该文件的精简版本 1,2,3,4,5,6 12,34,45,65 34,34,24 在上面的例子中,我希望在调用read_csv时,每行只保留3个字段(类似于上面的256个) 我试过下面的方法 import pandas as pd df = pd.read_csv('sample.csv',header=None) 在第一次生成元数

我有一个csv文件,它没有标题列,每行都有可变长度的记录

每个记录最多可以有398个字段,我想在我的数据框中只保留256个字段,因为我只需要处理这些字段

下面是该文件的精简版本

1,2,3,4,5,6
12,34,45,65
34,34,24
在上面的例子中,我希望在调用read_csv时,每行只保留3个字段(类似于上面的256个)

我试过下面的方法

import pandas as pd
df = pd.read_csv('sample.csv',header=None)
在第一次生成元数据时,我得到了以下错误

  File "pandas/_libs/parsers.pyx", line 2042, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 5 fields in line 4, saw 10
我能想到的唯一解决办法就是使用

names = ['column1','column2','column3','column4','column5','column6']
在创建数据帧时

但是对于可能高达50MB的真实文件,我不想这样做,因为这会占用大量内存,我尝试使用aws lambda运行它,这将产生更多的成本。我每天都要处理大量的文件

我的问题是,我是否可以在单独读取csv时使用更细的256字段创建数据帧?这是我的第一步吗

我对熊猫很陌生,所以请原谅我的无知。我花了很长时间试图寻找一个解决办法,但还是找到了

# only 3 columns
df = pd.read_csv('sample.csv', header=None, usecols=range(3))
print(df)
#     0   1   2
# 0   1   2   3
# 1  12  34  45
# 2  34  34  24

因此,只需更改
范围
值。

尝试使用
usecols
(在中阅读更多内容)。。。但是,由于csv只是文本文件,熊猫仍然需要加载和读取完整文件以识别列,
usecols
只控制解析到DataFrame中的内容考虑使用二进制文件快速访问列