您现在的位置是:群英 > 开发技术 > Python语言
用python如何读取csv文件,你知道几种方法?
Admin发表于 2021-11-22 17:53:557253 次浏览

    这篇文章给大家分享的是用python如何读取csv文件的内容,对于python读取csv文件的方法我们之前也有了解过,下文给大家分享五种实现读取csv文件的方法,小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。

    在python里面,读取或写入csv文件时,首先要import csv这个库,然后利用这个库提供的方法进行对文件的读写。

典型的数据集stocks.csv:

    一个股票的数据集,其实就是常见的表格数据。有股票代码,价格,日期,时间,价格变动和成交量。这个数据集其实就是一个表格数据,有自己的头部和身体。

第一招:简单的读取

    我们先来看一种简单读取方法,先用csv.reader()函数读取文件的句柄f生成一个csv的句柄,其实就是一个迭代器,我们看一下这个reader的源码:

    喂给reader一个可迭代对象或者是文件的object,然后返回一个可迭代对象。

  • 首先读取csv 文件,然后用csv.reader生成一个csv迭代器f_csv
  • 然后利用迭代器的特性,next(f_csv)获取csv文件的头,也就是表格数据的头
  • 接着利用for循环,一行一行打印row的内容,也就是表格数据的身体

 

第二招:用nametuple

    上面的第一招其实是最简单的,下面我们用nametuple 来包裹一下这个生成的row数据。

  • nametuple其实是一个非常有用的类,这个类属于collections模块,而这个模块简直就是一个百宝箱里面有非常多的牛逼的库;
  • 这里我们用next(f_csv)其实就是获取表格的头部来初始化这个Row;
  • 然后循环来构造这个Row的数据,把我们表格里面的每一行的数据都喂成nametuple格式的row_info;
  • 这样做的好处就是你可以随心所欲的访问这个row_info里面的数据,就想访问类数据一样,比如row_info.price

第三招:用tuple类型转换

    如果我们对csv数据每一行的类型都非常清楚的话,嘿嘿可以用一个设定好的数据格式转换头来对数据进行转换。

    操作的步骤其实跟上面差不多,就是对数据结果的清洗处理稍微不一样。这里非常巧妙的zip来构造一个嵌套的数据列表,然后用convert(data)把csv文件里面每一行的数据进行类型转换,这招真的不错!
看一下结果:

第四招:用DictReader

    上面用的nametuple其实也是一个数据的映射,有没有什么方法可以直接把csv 的内容用映射的方法读取,直接出来一个字典,还真有的,来看一下代码:

    是不是非常简捷,原来csv模块直接内置了DictReader(),按照字典的方法进行读取,然后生成一个有序的字典,看一下结果:

    有兴趣的可以看一下这个DictReader()的源码,它其实一个内部构造的迭代器类,在内部的__next__其实也是用的OrderedDict(zip(self.fieldnames, row))来生成的。

第五招:用字典转换

    如果我们需要对这个csv里面的数据进行清洗,因为读出来的时候都是字符串,我们需要更新为特定的数据类型,这个时候也可以用字典转换这一招,也是非常巧妙的,我们看一下源码:

    原来的数据价格Price和成交量,我希望最后读取生成的是一个浮点型数据和整形的数据,这么搞呢,用一个字典来巧妙的更新key即可。

  • 首先我们声明一个自定义的类型转换器field_types;
  • 然后循环生成一个可迭代的对象(key,conversion(row[key]);
  • 最后更新一下字典里面相同的key,比如row[‘price']的内容就会被更新了

    关于用python如何读取csv文件的内容就介绍到这,上述五种方法都有一定的借鉴参考价值,希望大家阅读完这篇文章能有所收获,想要了解更多大家可以关注其它的相关文章。

文本转载自脚本之家

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-05-17 11:47:20 
摘要:本文实例为大家分享了android通过单点触摸移动图片的具体代码,供大家参考,具体内容如下编写布局资源文件先准备一张图片放入drawable内这里主要就是将图片显示出来并设置id(android:sc
2022-09-30 17:55:26 
摘要:这篇文章主要介绍了关于后缀表达式的java实现过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-01-04 18:53:44 
摘要:这篇文章我们来了解pycharm的相关操作,一些朋友在卸载pycharm时都有遇到卸载不干净不完全的问题,那么具体怎样做才能完全卸载pycharm呢?这篇小编就给大家来分享一些操作,有需要的朋友可以参考,接下来就跟随小编来一起了解看看吧!
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部