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中optionParser模块的使用方法实例教程
Aug 29 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
Nov 20 Python
python操作mysql数据库
Mar 05 Python
python机器学习之决策树分类详解
Dec 20 Python
python简单商城购物车实例代码
Mar 15 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
Oct 22 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python 图片去噪的方法示例
Jul 09 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
Python configparser模块应用过程解析
Aug 14 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
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
Jquery Change与bind事件代码
2011/09/29 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
React Router基础使用
2017/01/17 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
python中enumerate的用法实例解析
2014/08/18 Python
python中执行shell的两种方法总结
2017/01/10 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
python同步windows和linux文件
2019/08/29 Python
python银行系统实现源码
2019/10/25 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
什么是组件架构
2016/05/15 面试题
个人优缺点自我评价
2014/01/27 职场文书
九年级化学教学反思
2014/01/28 职场文书
表彰大会主持词
2014/03/26 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
西安兵马俑导游词
2015/02/02 职场文书
语文教师求职信范文
2015/03/20 职场文书
搞笑结婚保证书
2015/05/08 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
用Python实现Newton插值法
2021/04/17 Python
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis