我具有存儲在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嘿,我應該如何使用它?第一行是標題 –