我有以下文件,我尝试使用Python 3.4.5导入到pandas数据框中:
filename = "fname.dat"
import pandas as pd
df = pd.read_table(filename)
但是,由于数据的格式化(即某些行有22列,其他行有23列),我收到以下错误:
pandas.parser.CParserError: Error tokenizing data. C error: Expected 22 fields in line 13, saw 23
这个问题存在于许多行中,因此先验地跳过行对我来说并不合适。可以使用参数error_bad_lines=False
,即
df = pd.read_table(filename, error_bad_lines=False)
但这不是一个好的解决方案,因为这会导致跳过“问题行”。
对于fname.dat
,这意味着跳过数千行。
我不能在pandas.read_table()
分配内存,如果一行中有23列而不是22列,则使用空列?这对其他行有何影响?
我应该以某种方式指导大熊猫说“如果不存在,请跳过”?