Python 3.x 加载列不相等的文本文件
我有一个包含非结构化数据的文本文件。该文件包含150k行,如Python 3.x 加载列不相等的文本文件,python-3.x,file,numpy,text,Python 3.x,File,Numpy,Text,我有一个包含非结构化数据的文本文件。该文件包含150k行,如 M Jackson 1 $ F Fiza 1 $ M Aaro
M Jackson 1 $
F Fiza 1 $
M Aaro 41 $
M Micheal 226 4 2 211 6 $
第一列是性别信息,第二列是姓名,第三列可以有1个或多个数字,用空格分隔,表示此人可能属于的国家。每个国家都有一个代码。符号$是行的结尾
我必须把数据放到numpy数组中。当我将文本的行扫描到数组时,它显示错误,因为它的列不相等
data = np.loadtxt(filename, dtype= 'str', delimiter = ' ')
在这种情况下,如何将数据扫描到阵列中?空格也不是常数,但数字是用空格分隔的。
对于我的数据,第一行有3个值,第四行有6列。之后,我将空列设置为零,使其列数相等,并进行特征提取 numpy加载程序不能很好地处理丢失的数据。但在genfromtxt中,可以指定字段宽度
In [103]: txt = """one 2 3
...: two 4 5
...: """.splitlines()
In [105]: np.genfromtxt(txt, delimiter=[3,2,2,2])
Out[105]:
array([[nan, 2., 3., nan],
[nan, nan, 4., 5.]])
In [109]: np.genfromtxt(txt, delimiter=[3,2,2,2],dtype=str,encoding=None)
Out[109]:
array([['one', ' 2', ' 3', ''],
['two', ' ', ' 4', ' 5']], dtype='<U3')