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

标签 python csv pandas dataframe

我有一个奇怪的场景,其中 非 NaN 值由 ##### 表示,但是当我单击 ####< 的单元格时 l 获取值。但是,当我操作我的数据时,出现以下错误:

  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

在下图中,查看 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=',' 并且在第一列我有一些字符 ',' 问题更新为

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

谢谢

最佳答案

这是一道Excel题,出现你的问题是因为Excel没有空间显示数值。增加C的列宽就可以了。

关于python - 我的 CSV 文件中的 NaN 不是 NaN,因为列中的逗号被视为分隔符,但不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088950/

相关文章:

python - 在 Python 中从逗号分隔的字符串中仅提取某些字段的最快方法

python - Pandas 数据帧组 : sum one column, 从其他人那里获取第一个元素

python - django有什么好的User-Agent解析插件

python - 从 N 维数组中的值构造 (N+1) 维对角矩阵

python - 如何根据这些行值从一列中选择 pandas 中的行值,这些值在出现的任何地方都满足另一列中的某些条件

python - 使用 Python 对 csv 中的列求和

使用 CSV 数据的 Python if 语句

python - 我怎么能实现 “HH:MM:SS” 格式

python - 根据公共(public)字符串将列表排序为列表,同时保留整个列表

python - 使用不同的 DataFrame 更改 pandas DataFrame 切片中的值