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 UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
在Python下尝试多线程编程
Apr 28 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
Python使用gensim计算文档相似性
Apr 10 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
jupyter notebook 多行输出实例
Apr 09 Python
Python用requests库爬取返回为空的解决办法
Feb 21 Python
python常量折叠基础知识点讲解
Feb 28 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
php网站地图生成类示例
2014/01/13 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
python基础教程之Hello World!
2014/08/29 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
仓管员岗位职责范文
2013/11/08 职场文书
专家推荐信模板
2014/05/09 职场文书
贷款担保申请书
2014/05/20 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
学术会议邀请函
2015/01/30 职场文书
关于军训的感想
2015/08/07 职场文书
礼貌问候语大全
2015/11/10 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle
Python find()、rfind()方法及作用
2022/12/24 Python
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS