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标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
Python键盘输入转换为列表的实例
Jun 23 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
Python 支付整合开发包的实现
Jan 23 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
PyQt QCombobox设置行高的方法
Jun 20 Python
Python调用钉钉自定义机器人的实现
Jan 03 Python
Python递归调用实现数字累加的代码
Feb 25 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 Python
Django实现内容缓存实例方法
Jun 30 Python
Python中Selenium模块的使用详解
Oct 09 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学习的路线图
2013/07/10 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
js数据类型检测总结
2018/08/05 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
Python的动态重新封装的教程
2015/04/11 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
群众路线教育实践活动的心得体会
2014/09/03 职场文书
全国助残日活动总结
2015/05/11 职场文书
不同意离婚上诉状
2015/05/23 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
Go 中的空白标识符下划线
2022/03/25 Golang
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android