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 paramiko实现ssh远程访问的方法
Dec 03 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
windows下python连接oracle数据库
Jun 07 Python
Python中join函数简单代码示例
Jan 09 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
Django如何开发简单的查询接口详解
May 17 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
Python如何把不同类型数据的json序列化
Apr 30 Python
如何使用flask将模型部署为服务
May 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用正则表达式匹配中文实例详解
2013/11/06 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
土木工程专业大学毕业生求职信
2013/10/13 职场文书
党员承诺书范文
2014/05/19 职场文书
师范生自荐信模板
2014/05/28 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
讲座通知范文
2015/04/23 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
停发工资证明范本
2015/06/12 职场文书
高三教师工作总结2015
2015/07/21 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
JavaScript 定时器详情
2021/11/11 Javascript
MySQL分区表管理命令汇总
2022/03/21 MySQL