首页 > 解决方案 > 如果行数与标题数不匹配,则在 read_csv 中引发错误

问题描述

我有大量csv文件,我试图确定文件中的记录是否与预定义的模式一致。例如,给定一个 csv :

col1,co2,col3,col4,col5,col6
A,B,,C,D,E
M,N,O,,,
U,V,W,

第一行是一致的,因为它具有与标题一样多的条目(即使存在缺失值)。第二行也是一致的,因为它的条目与标题一样多,但第三行不一致,因为它只有 3 个条目。

我正在寻找一种方法pandas.read_csv来提高第 3 行的错误值,但是到目前为止,当我在 pandas 中读取文件时,它会读取所有带有 NA 的行以查找第 3 行中的缺失值。我尝试过使用error_bad_linesna_filter,但这并不能解决我的问题。有什么想法可以解决这个问题吗?我不想遍历 csv 中的每一行,因为一些文件相当大,每个文件需要几分钟,这对我来说行不通。

标签: pythonpandascsv

解决方案


那么error_bad_lines将确保没有额外的列。至于丢失的列,不幸的是,如果不迭代数据,就无法检查这些列。您可以使用assert(not df.isnull().values.any()).


推荐阅读