我正在尝试将txt文件中的空白列空格替换为0。
我尝试了以下方法。
import numpy as np
data=np.loadtxt('/Users/Hrihaan/Desktop/A_1.txt')
data[data==''] = '0'
收到此信息:ValueError:第3行的列数错误。
我的值不以逗号分隔,所以我也尝试了以下内容。
data[data== ] = 0
此时收到的错误不同:SyntaxError:语法无效
我的预期输出如下:
任何建议都将受到赞赏。
答案 0 :(得分:1)
numpy.loadtxt
文档建议(在备注中):
此功能旨在成为简单格式化文件的快速阅读器。
genfromtxt
函数提供了更复杂的处理,例如,缺少值的行。
但是,genfromtxt
中“缺失值”的处理并将其替换为“填充值”仅适用于已知的“缺失值”,例如x
代替数字。
那不是你的情况。您有一个缺少字段的文件,这些numpy
方法无法处理它。您可以手动解析并加载文件,或者,如果可以接受,请使用pandas.read_table
,如下所示:
>>> import pandas as pd
>>> pd.read_table('/path/to/file', dtype=float, header=None, sep='\s+').fillna(0).values
array([[ 2., 6.],
[ 4., 8.],
[ 6., 0.]])
read_table()
将使用NaN
替换缺失值,我们可以使用fillna
方法将其替换为零。可以使用numpy.array
访问底层.values
。