我有一个CSV文件,其结构如下:
Data Download information etc.
Header1 Header2 Header3 Header4 ...
A B C D ...
E F G H ...
I J K L ...
... ... ... ... ...
字符串
除了第一行,所有的标题和数据都已经被分隔成列。但是,我找不到一个方法来读取我的CSV文件。
[IN] df = pd.read_csv('path.csv', encoding='unicode_escape', skiprows=[1])
[OUT] pandas.errors.ParserError: Error tokenizing data. C error: Expected 6 fields in line 16, saw 7
型
总共有50列。第16行的数据与其他行没有什么不同。
[IN] df = pd.read_csv('path.csv', skiprows=[1])
[OUT] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 234375: invalid start byte
型
如果我使用skip_bad_lines
,我会得到一个df作为输出,无论多么混乱,来自所有50列的数据都被压缩成5列,并且在每列中添加一个“;”作为“”。
有什么建议吗?
1条答案
按热度按时间23c0lvtd1#
字符串
跳过第二行。这使得第一行(
Data Download information etc.
)成为标题,并扰乱了列检测。您应该使用:用途:
型
或者:
型
有关详细信息,请参阅
read_csv
文档中的skiprows
参数:skiprowsint,int或Callable的列表,可选
要跳过的行号(0-索引)或文件开头要跳过的行数(int)。
如果可调用,则可调用函数将根据行索引进行评估,如果应该跳过行,则返回True,否则返回False。有效的可调用参数的示例是
lambda x: x in [0, 2]
。输出量:
型