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使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
使用requests库制作Python爬虫
Mar 25 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
django js实现部分页面刷新的示例代码
May 28 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
python cv2截取不规则区域图片实例
Dec 21 Python
pytorch动态网络以及权重共享实例
Jan 06 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
python基础入门之字典和集合
Jun 13 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.ini 中文版
2006/10/28 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
PHP实现小偷程序实例
2016/10/31 PHP
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
深入探究Django中的Session与Cookie
2017/07/30 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
对python中的argv和argc使用详解
2018/12/15 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
2014年会演讲稿范文
2014/01/06 职场文书
个人贷款担保书
2014/04/01 职场文书
质量保证书
2015/01/17 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
大学生十八大感想
2015/08/11 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫