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中的一些高级编程技巧
Apr 02 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
django中ImageField的使用详解
Dec 21 Python
python中time.ctime()实例用法
Feb 03 Python
Python一行代码实现自动发邮件功能
May 30 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
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
javascript连续赋值问题
2015/07/08 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
python显示天气预报
2014/03/02 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
学习python需要有编程基础吗
2020/06/02 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
教师辞职报告范文
2014/01/20 职场文书
小学生倡议书范文
2014/05/13 职场文书
区级文明单位申报材料
2014/05/15 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
停发工资证明范本
2015/06/12 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS