我具有存储在csv文件数据如下面格式如何读取CSV
892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q
893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S
894,2,"Myles, Mr. Thomas Francis",male,62,0,0,240276,9.6875,,Q
895,3,"Wirz, Mr. Albert",male,27,0,0,315154,8.6625,,S
896,3,"Hirvonen, Mrs. Alexander (Helga E Lindqvist)",female,22,1,1,3101298,12.2875,,S
897,3,"Svensson, Mr. Johan Cervin",male,14,0,0,7538,9.225,,S
每个列中的数据类型
1. int 6. int
2. int 7. int
3. String 8. float
4. String 9. float
5. float 10.String
11.String
与892,893开始第一列中, ... 897应存储在int
格式中array
。第三栏如“威尔克斯夫人詹姆斯(Ellen Needs)”应该存储在string
类型中。但是,第三列是string
格式,但字符的长度为不固定的,即我不知道字符的最大长度存储在此列
我做:
csv_file_object = csv.reader(open('trainData.csv', 'rb'))
header = csv_file_object.next()
data=[]
for row in csv_file_object:
data.append(row)
data = np.array(data)
但是,上述代码读取所有作为string
列但很多都是不string
格式,并且存储的信息在string
格式。另一方面,如果我使用genfromtxt
,则第三列是问题,因为它包含双份额内的逗号。
我希望用它自己的数据类型存储每列,即第一列应该被存储为int
类型。
我预期的数组:
892 3 "Kelly, Mr. James" male 34.5 0 0 330911 7.8292 NaN Q
893 3 "Wilkes, Mrs. James (Ellen Needs)" female 47 1 0 363272 7 NaN S
894 2 "Myles, Mr. Thomas Francis" male 62 0 0 240276 9.6875 NaN Q
895 3 "Wirz, Mr. Albert" male 27 0 0 315154 8.6625 NaN S
896 3 "Hirvonen, Mrs. Alexander (Helga E Lindqvist)" female 22 1 1 3101298 12.2875 NaN S
897 3 "Svensson, Mr. Johan Cervin" male 14 0 0 7538 9.225 S
正如你看到的,如果数据不可用,NaN
或其衍生物应放。
我该怎么读csv文件?
pandas.read_csv('data.csv',dtypes = [int,int,str])''? – mbatchkarov
@mbatchkarov我不知道熊猫,我可以在**数组**或**矩阵**中得到预期结果吗?你能用自己的方式写出答案吗? –
@mbatchkarov嘿,我应该如何使用它?第一行是标题 –