如何在Python中自动读取混合数据类型的文本文件



我在不同的列中有几个混合数据类型的文本文件,我想阅读它们,以便程序自动识别每个列类型,因为我不知道哪列包含哪种类型。

当我只读取数字数据时,我使用了以下方法,但对于混合数据类型,它失败了。

Import numpy as np
Import csv
train = np.array(list(csv.reader(open(self.source_data_file, "rb"), delimiter=','))).astype('float')

在此处查看numpy.genfromtxt:http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.genfromtxt.html

您可以通过指定分隔符和数据类型直接读取文件。假设你在csv中有一行是这样的:

10,120.3,xfghfh

您可以执行以下操作:

data = np.genfromtxt('input_file', dtype=None , delimiter=",")
print (data)

它会给你这个:

data = array((10, 120.3, 'xfghfh'), 
       dtype=[('column_name1', '<i4'), ('column_name2', '<f8'), ('column_name3', 'S6')])

最新更新