首页 > 解决方案 > 如何在熊猫中指定确切的列数

问题描述

我有一个没有标题的文本文件可供阅读。我指定了参数

  header=None

这可以。

我正在使用以下语句来读取文件

  pd.read_csv(fname, '\t', header=None, quotechar=None, quoting=3)

所以,我正在使用制表符分隔符。

以下是示例文件

   a    b   c
   a    b   c
   a    b   c

上面的文件读得很好。但有些文件看起来如下

   a      
   a    b   c
   a    b   c
   a    b   c

对于这个文件,错误如下

    pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 3

这个问题不能通过跳过第一行来解决,因为我们不确定第二个喜欢的格式是否正确。主要的是如何指定所需的列数。

我知道我们可以填写不可用的值。

但是,如果我们只跳过第一行,我怎么能指定 csv 阅读器中的列数,使其不会与第一行中的错误混淆,也许第二行也是有问题的。

谢谢

干杯

标签: pythonpandas

解决方案


names 参数成功了:

df = pd.read_csv(fname, '\t', header=None, names=['A', 'B', 'C'])

回报:

    A   B   C
0   a   NaN     NaN
1   a   b   c
2   a   b   c
3   a   b   c

推荐阅读