使用numpy导入缺少值的txt文件
Importing txt file with missing values with numpy
我有以下形式的 txt 文件:
请注意,有些字段完全缺失,但缺失它们这一事实很重要。在附图中,由于技术故障,所有测量值都丢失了,但可能只有一列中的值丢失,而其他列中的值却给出了。
我正在尝试使用以下代码导入此类 .txt 文件。
import numpy as np
data=np.genfromtxt(filepath, skip_header=1, invalid_raise=False, usecols=(2, 3, 4, 5, 6, 7))
导致错误:
第 2123 行(得到 2 列而不是 6 列)
第 3171 行(得到 2 列而不是 6 列)
第 3172 行(得到 2 列而不是 6 列)
但仍然产生了一些可用的结果。正如我所说,13:30 处的数据丢失这一事实很重要,不能简单地忽略。然而,上面的代码正是这样做的——ignores/skips 13:30 处的行。相反,我希望它用一些预定义的值填充该行,或者只是以其他可以在稍后处理中识别的方式表示它。
有什么办法吗?
np.genfromtxt()
采用参数 missing_values
。如果将其设置为:
data=np.genfromtxt(filepath, skip_header=1, invalid_raise=False, usecols=(2,3, 4, 5, 6, 7), missing_value=???)
它应该用 nan
s 替换缺失值。但是请注意,如果这应该有效,则必须有填充物。否则,您可以使用 usecols
参数,即您首先选择具有缺失值的列并将它们与主要数据分开。之后你可以再次合并它们。处理缺失值的第二种非常好的方法是使用 pandas.read_csv()
代替。此外,它比 np.genfromtxt
快得多。
我有以下形式的 txt 文件:
请注意,有些字段完全缺失,但缺失它们这一事实很重要。在附图中,由于技术故障,所有测量值都丢失了,但可能只有一列中的值丢失,而其他列中的值却给出了。
我正在尝试使用以下代码导入此类 .txt 文件。
import numpy as np
data=np.genfromtxt(filepath, skip_header=1, invalid_raise=False, usecols=(2, 3, 4, 5, 6, 7))
导致错误:
第 2123 行(得到 2 列而不是 6 列)
第 3171 行(得到 2 列而不是 6 列)
第 3172 行(得到 2 列而不是 6 列)
但仍然产生了一些可用的结果。正如我所说,13:30 处的数据丢失这一事实很重要,不能简单地忽略。然而,上面的代码正是这样做的——ignores/skips 13:30 处的行。相反,我希望它用一些预定义的值填充该行,或者只是以其他可以在稍后处理中识别的方式表示它。
有什么办法吗?
np.genfromtxt()
采用参数 missing_values
。如果将其设置为:
data=np.genfromtxt(filepath, skip_header=1, invalid_raise=False, usecols=(2,3, 4, 5, 6, 7), missing_value=???)
它应该用 nan
s 替换缺失值。但是请注意,如果这应该有效,则必须有填充物。否则,您可以使用 usecols
参数,即您首先选择具有缺失值的列并将它们与主要数据分开。之后你可以再次合并它们。处理缺失值的第二种非常好的方法是使用 pandas.read_csv()
代替。此外,它比 np.genfromtxt
快得多。