我的CSV文件中的NaN不是NaN,因为列中的逗号被视为分隔符,而不是

时间:2017-03-29 09:01:15

标签: python csv pandas dataframe

我有一个奇怪的情况,其中non NaN值由#####表示,但是当我点击####的单元格时,我会得到该值。然而,当我操纵我的数据时,我得到以下错误:

  img_charac=img[int(coords[2]):int(coords[3]),int(coords[0]):int(coords[1])]
ValueError: cannot convert float NaN to integer

因为它将某个单元格读为NaN

怎么能避免这种情况? 这是我的csv文件

enter image description here

在下面的图片中查看te行139 cell C,当我点击该单元格时,我会在右上角获得实际值

enter image description here

l增加了列的宽度l我的csv文件中没有任何####。 但是当我读取我的csv文件时如下:

npa=np.genfromtxt(path_csv+"char.csv", delimiter=',',skip_header=1,usecols=(2,3,4,5))

npa[:280]
array([[   38.,   104.,  2456.,  2492.],
       [   40.,   102.,  2442.,  2448.],
       [   40.,   100.,  2402.,  2410.],
       ..., 
       [ 1473.,  1482.,   153.,   177.],
       [   nan,  1491.,  1494.,   172.],
       [ 1508.,  1517.,   159.,   177.]])

我奇怪地发现一个NaN(npa[278])

[   nan,  1491.,  1494.,   172.]

我注意到这个值没有读取正确的列。 整行如下:

',' 1491    1494    172 181
而是写作:  [1491.,1494。,172。,181。] 它写道:

[   nan,  1491.,  1494.,   172.]

表示它读取第一列char (',')并离开最后一列。 我注意到对于每一行都有一个char ',',其余的就可以了

这里是如何阅读我的csv:

npa=np.genfromtxt(path_csv+"char.csv", delimiter=',',skip_header=1,usecols=(2,3,4,5))

我有delimiter=','并且在第一列中有一些char ',' 问题已更新为

http://stackoverflow.com/questions/43093100/considering-comma-in-a-cell-column-as-delimiter-but-its-not-how-to-differentia

谢谢

1 个答案:

答案 0 :(得分:1)

这是一个Excel问题,因为Excel没有显示值的空间,所以您的问题就出现了。增加C的列宽,你会没事的。