python - 跳过 genfromtxt 中缺少值的行

标签 python csv file-io numpy genfromtxt

如何加载 csv.txt 文件?文件存储到数组中,当至少一个单元格为空时跳过行? 我的 csv 文件很大(超过 1000 行和 14 列):

1;4;3
;1;3
;;6
3;4;7

我想跳过写入第 2 行和第 3 行,因为它们缺少值 (x;1;3) (x;x;6) 完成的所有其他行应写入数组...

这些行(每行中包含“完整”信息)应写入矩阵(数组)

M = np.genfromtxt(file.csv, delimiter=";",dtype=float)

最佳答案

读取所有行然后仅保留不丢失数据的行可能会更容易。

>>> M = np.genfromtxt("miss.csv", delimiter=";", dtype=float)
>>> M
array([[  1.,   4.,   3.],
       [ nan,   1.,   3.],
       [ nan,  nan,   6.],
       [  3.,   4.,   7.]])
>>> M = M[~np.isnan(M).any(axis=1)]
>>> M
array([[ 1.,  4.,  3.],
       [ 3.,  4.,  7.]])

(这假设您在 miss.csv 中没有想要保留的 nan 作为值。如果您这样做,则会有点麻烦比较棘手。)

关于python - 跳过 genfromtxt 中缺少值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20007017/

相关文章:

java - 使用 Jython 在 Spring Boot 应用程序中包含 Python 脚本失败 - 找不到模块

python - 将 Python 列表写入单个 CSV 列

ruby-on-rails - 进入那个数据库!使用 Ruby 解析 CSV

vba - Excel 2007 VBA 宏逐行读取文本文件如何停止逗号 (,) 分隔

python - 使用 Django Rest Framework 上传文件

python - 了解类变量的引用计数

php - 从 MySQL DB 导出中文单词到 CSV

c - 如何限制允许写入文件的文件大小和时间段

java - 检查文件是否存在而不创建它

python - 要 float 的 timedelta 对象