我在 Pandas v0.18.1 中使用 read_csv 来读取一些数据。我想从 csv 中选择列和行的子集,所以我尝试过:
df_a = pd.read_csv(filepath, index_col = False, usecols=cols_to_use, skiprows=1)
这给了我一个 ValueError: Usecols do not match names. 请注意,cols_to_use 是一个列名列表,但如果我省略了 skiprows 部分:
df_a = pd.read_csv(filepath, index_col = False, usecols=cols_to_use)
它工作正常,同样,如果我省略 usecols 位并将 skiprows 放回去,那也工作正常。
这可能是一个错误(您不能同时使用 usecols 和 skiprows)吗?我试过查看文档,但找不到任何提及。或者可能有一个合乎逻辑的原因不能同时使用两者?
(此外,如果有更好/更明显的方法从 csv 中挑选出列和行的子集,我们也将不胜感激!)
提前致谢!
最佳答案
如果您的 csv 文件的第一行包含列名,则 skiprows=1
将忽略包含列名的行,您会遇到错误。
如果你想跳过特定的行,你可以提供行号作为列表使用,例如skiprows=[1]
。行号是从 0 开始索引的,因此列名在第 0 行,第一个数据行是第 1 行。
关于python - 同时使用 usecols 和 skiprows(在 Pandas read_csv 中)会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40279798/