Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas read_csv会挂起代码而不会出错,但只是有时挂起_Python_Pandas_Csv_Dataframe - Fatal编程技术网

Python Pandas read_csv会挂起代码而不会出错,但只是有时挂起

Python Pandas read_csv会挂起代码而不会出错,但只是有时挂起,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我有一个.csv文件,有29列 如果我只是使用: df=pd.read\u csv('filename.csv') 然后代码就挂起了,什么都不做。根本没有错误消息——它只是停止工作,或者看起来像是在永远运行 但如果我使用: df=pd.read\u csv('filename.csv',usecols=[0,2]) 不管怎样,它工作得很好,只使用这些列创建数据帧 于是我试着: df=pd.read\u csv('filename.csv',usecols=[i代表范围(0,29)]) 但它只是再

我有一个.csv文件,有29列

如果我只是使用:

df=pd.read\u csv('filename.csv')

然后代码就挂起了,什么都不做。根本没有错误消息——它只是停止工作,或者看起来像是在永远运行

但如果我使用:

df=pd.read\u csv('filename.csv',usecols=[0,2])

不管怎样,它工作得很好,只使用这些列创建数据帧

于是我试着:
df=pd.read\u csv('filename.csv',usecols=[i代表范围(0,29)])

但它只是再次挂起代码

但如果我尝试:
df=pd.read\u csv('filename.csv',usecols=[i代表范围(0,23)])

因此,它不会读取整个.csv,只读取前23列,它工作正常。它也适用于0到23之间的任何数字(如[i代表范围(0,10)]中的i或[i代表范围(0,22)],但不适用于大于或等于24的任何数字

我还尝试了另一种方法,从后面索引:
df=pd.read\u csv('filename.csv',usecols=[i代表范围(2,29)])
如果我这样做,它从第28列一直工作到第2列。但是如果我尝试进一步到第1列或第0列,它会再次破坏代码

我不知道这里发生了什么。我也没有计算机科学学位,所以请像一个自学Python代码的人那样对我说话,但非常糟糕(因为我有)

编辑:


好的,看起来我已经弄明白了。有些列的行中有字符串,有些列有浮点数。我想这会导致一些问题,但前后不一致。我不确定到底是什么问题。但现在它似乎工作得很好。

这是一项很好的调试工作。如何教授意味着不必付出努力!你试过阅读wit吗h
csv
模块?我会查看最后几列。事实上,使用csv模块将这些奇怪的列逐个隔离到单独的文件中,然后尝试对它们进行处理是很有趣的。如果您可以缩小到仍然失败的几行和几列,您可以将其发布到此处。此外,如果您没有运行o,则会挂起或引发异常在命令行中,或者如果您进一步抑制了所有异常,您可能没有注意到错误是什么。奇怪。您是否尝试将文件拆分为两个?也就是说,如果文件长度为100行,则将其设置为两个50行长的文件。我猜在其中一个字段中,可能在字段24中,有一个差事分隔符。您也可以检查该错误。如果例如,您的分隔符是逗号,并且您希望每一行都有28个分隔符,请尝试以下类似的方式:awk-F,'NF>28{print“Error,位于第“NR;exit}”filename.csv行