我有一个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文本。然后,我的程序将其读取而没有任何错误。 但是在不保存的情况下,会产生上述错误。 请帮我解决这个问题。 预先感谢。
答案 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
可能是由于空数据帧的一些实例导致此错误。如果索引列中有数字和非数字数据。然后,numpy在尝试检查索引是否有序时会感到困惑。
对于解决方案:
df = pd.read_csv('your_file.tsv', sep='\t', header=0)
df.set_index(['0'], inplace=True)