我在Pandas v0.18.1中使用read_csv读取一些数据。我想从csv中选择列和行的子集,所以我尝试了:

df_a = pd.read_csv(filepath, index_col = False, usecols=cols_to_use, skiprows=1)


这给我一个ValueError:Usecols与名称不匹配。
请注意,cols_to_use是列名的列表,但是如果我忽略了跳过部分:

df_a = pd.read_csv(filepath, index_col = False, usecols=cols_to_use)


它工作正常,类似地,如果我省略了usecols位,然后又放回了草料行,那也很好。

难道这是一个bug(您不能同时使用usecols和skiprows)吗?我曾尝试查看文档,但找不到任何提及。也许有逻辑原因,您不能同时使用两者?

(另外,如果有更好/更明显的方法从csv中挑选出列和行的子集,也将不胜感激!)

提前致谢!

最佳答案

如果csv文件的第一行包含列名,则skiprows=1将忽略具有列名的行,您将遇到错误。

如果您想跳过特定的行,则可以使用例如skiprows=[1]。行号是0索引,因此列名在行0中,而第一条数据行是数字1。

关于python - 同时使用usecols和skiprows(在Pandas read_csv中)会产生错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40279798/

10-12 21:57