python - 同时使用 usecols 和 skiprows(在 Pandas read_csv 中)会出错

标签 python pandas dataframe

我在 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/

相关文章:

java - 用于查找规范覆盖或最小数量的函数依赖项的程序

python - 如何使用 pandas 中的 groupby 计算绝对总和?

r - 检查 R 列中是否存在值向量,然后返回单个 True 值

r - 在 R 中将具有各种长度向量的列表转换为 data.frame 的最简单方法

dataframe - Groupby 与 Julia Dataframe 上的 sum

python - 计算矩阵中小于一个值的所有值

python - Elastic Beanstalk Flask 应用程序上的 HTTPS

python - 从韩国文本字符串中提取整数,以其内容为条件并将其转换为 pandas 中的 float

python - 将对称矩阵加载到 pandas DataFrame 中,其中文件具有 3 列格式(行、列、数据)

python - Pandas DataFrame 仅适用返回第一列