一个股票数据集,其实就是一个普通的表格数据,有自己的头和体。本文主要介绍Python中读取CSV文件的五种方法,通过五招非常详细的介绍给大家。有需要的朋友可以参考一下。
目录
第一招:简单读取第二招:使用nametuple,第三招:使用tuple类型转换,第四招:使用DictReader,第五招:在python中使用字典转换。在读写csv文件时,首先要导入csv库,然后使用该库提供的方法读写文件。
典型数据集stocks.csv:
股票数据集实际上是常见的表格数据。有股票代码,价格,日期,时间,价格变化和交易量。这个数据集实际上是一个表格数据,有自己的头和体。
第一招:简单的读取
我们先来看一个简单的阅读方法。首先,使用csv.reader()函数读取文件句柄F生成一个csv句柄,它实际上是一个迭代器。让我们来看看这个阅读器的源代码:
向reader提供一个iterable对象或一个文件的对象,然后返回一个iterable对象。
首先读取csv文件,然后使用csv.reader生成一个csv迭代器f_csv。
接下来(f_csv)利用迭代器的特性获取csv文件的头,也就是表格数据的头。
然后,使用for循环,逐行打印row的内容,即表数据的主体。
第二招:用nametuple
上面第一招其实最简单。让我们用nametuple包装生成的行数据。
Nametuple其实是一个很有用的类,属于collections模块,这个模块简直就是一个百宝箱,里面有很多牛逼的库;
在这里,我们使用next(f_csv)来实际获取表的头来初始化这一行;
然后循环构造这一行的数据,将我们表中每一行的数据以nametuple格式馈入row _ info
这样做的好处是可以随意访问这个row_info中的数据,就像访问类数据一样,比如row_info.price
第三招:用tuple类型转换
如果我们非常清楚csv数据的每一行的类型,呵呵可以用一个设置好的数据格式转换头来转换数据。
其实操作步骤和上面差不多,只是数据结果的清理略有不同。这里非常巧妙的zip来构造一个嵌套的数据列表,然后使用convert(data)转换csv文件中每一行的数据。那真是一步好棋!
看一看结果:
第四招:用DictReader
上面使用的nametuple实际上是数据的映射。有什么方法可以通过映射直接读取csv的内容,直接拿出字典?是真的。让我们看一下代码:
不是很简单吗?原来DictReader()直接内置在csv模块中,按照dictionary方法读取,然后生成一个有序字典。看一看结果:
有兴趣的可以看看这个DictReader()的源代码。它实际上是内部构建的迭代器类,内部__next__实际上是使用Ordered Dict (zip (self)生成的。字段名,行))。
第五招:用字典转换
如果我们需要清理这个csv中的数据,因为它在读出时都是字符串,我们需要将其更新为特定的数据类型。这时候还可以用字典转换,也是很巧妙的。让我们来看看源代码:
原始数据价格价格和成交量,希望最终读取会生成一个浮点数据和整形数据。所以,用字典来巧妙的更新密钥。
首先,我们声明一个自定义类型转换器field _ types
然后循环生成迭代对象(key,conversion(row[key]);
最后,更新字典中的相同键,例如,将更新行['price']的内容。
参考链接:
用Python读取CSV文件的5种方法,https://mp.weixin.qq.com/s/cs4buSULva1FgCctp_fB6g
这就是这篇关于教你用Python阅读CSV文件的五种方法的文章。关于用Python阅读CSV文件的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。