我在CSV文件中有数据。我使用一个制表符将数据分隔成列。大多数行只包含一个制表符,如下所示:
AtB
有些行在行的末尾包含额外的选项卡,如下所示:
AtBtt
因此,如果我执行pd.read_csv(filePath, sep='t')
,那么我会得到一个错误:ParserError: Error tokenizing data. c error: Expected 2 fields in line XXX, saw 4
。这是因为有些行包含4个选项卡。
那么,如果一行末尾包含额外的选项卡,我怎么能忽略它呢?
使用io.StringIO
在之前清理文件
import pandas as pd
import io
with open('data.txt') as table:
buffer = io.StringIO('n'.join(line.strip() for line in table))
df = pd.read_table(buffer, header=None)
输出:
>>> df
0 1
0 A B
1 A B