如何在熊猫中指定确切的列数

时间:2019-02-27 12:11:49

标签: python pandas

我有一个没有标题的要读取的文本文件。 我指定了参数

  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阅读器中的列数,以使其不会与第一行中的错误混淆呢?也许第二行也有问题。

谢谢

欢呼

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您可以尝试指定分隔符是制表符,每个缺失的值都将填充NaN

d=pd.read_csv('test.csv',sep='\t', header=None)

并获得:

   0    1    2
0  a  NaN  NaN
1  a    b    c
2  a    b    c
3  a    b    c