繁体   English   中英

使用 pandas 读取 csv 文件时出现 IndexError

[英]IndexError in reading a csv file with pandas

我有一个 CSV 文件,我正在尝试使用 python 中的 pandas 模块读取该文件。(我在 Ubuntu 中编码)。

pd.read_csv("filename.csv",skiprows=2)

我想跳过两行,所以我在这里使用skiprows参数。 (名为 filename.csv 的文件是通过 C 程序创建的。)我面临的问题是,当我尝试直接读取文件时,我得到一个 IndexError 如下:

IndexError: index 0 is out of bounds for axis 0 with size 0

和一个警告

FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
res_values = method(rvalues)

但同时,如果我打开我的 CSV 文件并保存它而不进行任何编辑..我的错误得到解决。 所以每次,我都需要阅读我的 CSV 文件,我需要通过 Libre Office(在 Ubuntu 中)打开它一次,然后使用 ctrl+s 保存该文件,然后在选项中保存为 CSV 文本。 然后,我的程序读取它没有任何错误。 但是在不保存时,它会产生上述错误。 请帮我解决这个问题。 提前致谢。

我认为这是关于导出时 csv 文件的格式。 因为打开 csv 并保存后,它得到了正确的格式。 用notepad++检查文件,修正csv文件的分隔符。

这是 python 中的 IndexError,这意味着我们正在尝试访问不存在的索引。 我写的是一个非常简单的例子来理解这个错误。 在这里,我尝试为某个索引分配任何值。

import numpy as np

arr = np.array([], dtype=np.int64) 
print(arr.shape)
arr[0] = 23   

在此处输入图像描述

可能是有一些空数据帧的实例导致了错误。 如果索引列中有数字和非数字数据。 然后 numpy 在尝试检查索引是否有序时会感到困惑。

对于解决方案:

df = pd.read_csv('your_file.tsv', sep='\t', header=0) 
df.set_index(['0'], inplace=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM