如何阅读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第三列,例如“ Wilkes,詹姆斯夫人(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其中许多未采用stringformat格式,并format格式存储了信息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文件?

omri_saadon

您可以更轻松地使用pandas库,如下所示:

import pandas as pd

df = pd.read_csv("trainData.csv", dtype={'col1': int, 'col2': int, 'col3': str, 'col4': str, 'col5': float, 'col6':int,
                                  'col7': int, 'col8': float, 'col9':float, 'col10': str, 'col11': str})
df = map(list, df.values)
print df

输出:

[[892, 3, 'Kelly, Mr. James', 'male', 34.5, 0, 0, 330911.0, 7.8292, nan, 'Q'],
 [893, 3, 'Wilkes, Mrs. James (Ellen Needs)', 'female', 47.0, 1, 0, 363272.0, 7.0, nan, 'S'],
 [894, 2, 'Myles, Mr. Thomas Francis', 'male', 62.0, 0, 0, 240276.0, 9.6875, nan, 'Q'],
 [895, 3, 'Wirz, Mr. Albert', 'male', 27.0, 0, 0, 315154.0, 8.6625, nan, 'S'],
 [896, 3, 'Hirvonen, Mrs. Alexander (Helga E Lindqvist)', 'female', 22.0, 1, 1, 3101298.0, 12.2875, nan, 'S'],
 [897, 3, 'Svensson, Mr. Johan Cervin', 'male', 14.0, 0, 0, 7538.0, 9.225, nan, 'S']]

csv文件应如下所示,因为第一行将是列名

col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11
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

您可以在http://pandas.pydata.org/pandas-docs/stable/tutorials.html上了解有关熊猫的更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何阅读 Java中分离的csv文件?

来自分类Dev

如何阅读CSV Django HTTP响应

来自分类Dev

如何用熊猫阅读大型的CSV?

来自分类Dev

如何用熊猫正确阅读csv?

来自分类Dev

如何阅读CSV Django HTTP响应

来自分类Dev

阅读时如何忽略CSV中的空行

来自分类Dev

Ruby CSV | 阅读CSV时如何跳过几列?

来自分类Dev

CSV阅读完毕后,如何解决承诺?

来自分类Dev

使用熊猫阅读CSV时如何删除.0

来自分类Dev

如何让CSV阅读器读取存储文件?

来自分类Dev

python:如何为csv阅读器放置拆分条件

来自分类Dev

如何使用python中的mmap打开csv文件以进行阅读?

来自分类Dev

Android阅读CSV

来自分类Dev

CSV阅读中的重复

来自分类Dev

熊猫大步阅读csv

来自分类Dev

CSV阅读中的重复

来自分类Dev

CSV阅读器问题

来自分类Dev

如何从USB RFID阅读器阅读?

来自分类Dev

如何在R中阅读大量的csv(可能是科学计数法)?

来自分类Dev

Python:如何使用具有可选引号的csv阅读器拆分字符串

来自分类Dev

Python:如何使用具有可选引号的csv阅读器拆分字符串

来自分类Dev

如何让Spark 2.0阅读像CSV的mutli文件夹实木复合地板

来自分类Dev

如何让我的 CSV 文件阅读器读取 C++ 中的不同类型?

来自分类Dev

如何阅读(python [,argspecs])?

来自分类Dev

如何确定阅读结束

来自分类Dev

我如何阅读乐器?

来自分类Dev

如何阅读Python文档

来自分类Dev

如何加快阅读速度

来自分类Dev

如何阅读Android项目