Python读csv文件去掉一列后再写入新的文件实例


Posted in Python onDecember 28, 2017

用了两种方式解决该问题,都是网上现有的解决方案。

场景说明:

有一个数据文件,以文本方式保存,现在有三列user_id,plan_id,mobile_id。目标是得到新文件只有mobile_id,plan_id。

解决方案

方案一:用python的打开文件写文件的方式直接撸一遍数据,for循环内处理数据并写入到新文件。

代码如下:

def readwrite1( input_file,output_file):
 f = open(input_file, 'r')
 out = open(output_file,'w')
 print (f)
 for line in f.readlines():
 a = line.split(",")
 x=a[0] + "," + a[1]+"\n"
 out.writelines(x)
 f.close()
 out.close()

方案二:用 pandas 读数据到 DataFrame 再做数据分割,直接用 DataFrame 的写入功能写到新文件

代码如下:

def readwrite2(input_file,output_file): date_1=pd.read_csv(input_file,header=0,sep=',') date_1[['mobile', 'plan_id']].to_csv(output_file, sep=',', header=True,index=False)

从代码上看,pandas逻辑更清晰。

下面看下执行的效率吧!

def getRunTimes( fun ,input_file,output_file):
 begin_time=int(round(time.time() * 1000))
 fun(input_file,output_file)
 end_time=int(round(time.time() * 1000))
 print("读写运行时间:",(end_time-begin_time),"ms")

getRunTimes(readwrite1,input_file,output_file) #直接撸数据
getRunTimes(readwrite2,input_file,output_file1) #使用dataframe读写数据

读写运行时间: 976 ms

读写运行时间: 777 ms

input_file 大概有27万的数据,dataframe的效率比for循环效率还是要快一点的,如果数据量更大些,效果是否更明显呢?

下面试下增加input_file记录的数量试试,有如下结果

input_file readwrite1 readwrite2
27W 976 777
55W 1989 1509
110W 4312 3158

从上面测试结果来看,dataframe的效率提高大约30%左右。

以上这篇Python读csv文件去掉一列后再写入新的文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python编写分析Python程序性能的工具的教程
Apr 01 Python
python+flask实现API的方法
Nov 21 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
python Matplotlib模块的使用
Sep 16 Python
python自动化发送邮件实例讲解
Jan 04 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 Python
Python OpenCV快速入门教程
Apr 17 Python
PyTorch device与cuda.device用法
Apr 03 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 #Python
python3使用scrapy生成csv文件代码示例
Dec 28 #Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 #Python
scrapy爬虫实例分享
Dec 28 #Python
Python解决N阶台阶走法问题的方法分析
Dec 28 #Python
Python实现嵌套列表去重方法示例
Dec 28 #Python
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 #Python
You might like
PHP中上传大体积文件时需要的设置
2006/10/09 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
看了就知道什么是JSON
2007/12/09 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
最短的IE判断代码
2011/03/13 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
军校本科大学生自我评价
2014/01/14 职场文书
高三家长寄语
2014/04/03 职场文书
集中整治工作方案
2014/05/01 职场文书
班风学风建设方案
2014/05/06 职场文书
品牌推广策划方案
2014/05/28 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
《搭石》教学反思
2016/02/18 职场文书
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技