使用熊猫读取CSV文件中的IndexError

时间:2020-05-29 06:47:11

标签: python pandas csv

我有一个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文本。然后,我的程序将其读取而没有任何错误。 但是在不保存的情况下,会产生上述错误。 请帮我解决这个问题。 预先感谢。

2 个答案:

答案 0 :(得分:1)

我认为这是导出时csv文件的格式。由于打开csv并将其保存后,它会获得正确的格式。使用notepad ++检查文件,以更正csv文件的定界符。

答案 1 :(得分:0)

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

import numpy as np

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

enter image description here

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

对于解决方案:

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