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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
简介Python中用于处理字符串的center()方法
May 18 Python
对python读取CT医学图像的实例详解
Jan 24 Python
python中update的基本使用方法详解
Jul 17 Python
python统计指定目录内文件的代码行数
Sep 19 Python
Django学习之文件上传与下载
Oct 06 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
Python 如何在字符串中插入变量
Aug 01 Python
python 星号(*)的多种用途
Sep 21 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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安全开发库中文详细介绍
2015/03/22 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
ExtJS下grid的一些属性说明
2009/12/13 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
python中map()函数的使用方法示例
2017/09/29 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python系列 文件操作的代码
2019/10/06 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
岗位说明书标准范本
2014/07/30 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
开学典礼校长致辞
2015/07/29 职场文书
《静夜思》教学反思
2016/02/17 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技