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面试题
Jul 24 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
python怎么删除缓存文件
Jul 19 Python
Selenium python时间控件输入问题解决方案
Jul 22 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 Python
python中的测试框架
Nov 13 Python
Python的信号库Blinker用法详解
Dec 31 Python
Python3中最常用的5种线程锁实例总结
Jul 07 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
Dom 是什么的详细说明
2010/10/25 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
python正则实现提取电话功能
2018/02/24 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
python读取与处理netcdf数据方式
2020/02/14 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
如何写一个自定义标签
2012/12/28 面试题
金融专业个人求职信
2013/09/22 职场文书
质检部职责
2013/12/28 职场文书
先进个人获奖感言
2014/01/24 职场文书
5s标语大全
2014/06/23 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
实习单位推荐信
2015/03/27 职场文书
开学第一周总结
2015/07/16 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书