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中的jquery PyQuery库使用小结
May 13 Python
python实现将元祖转换成数组的方法
May 04 Python
使用pdb模块调试Python程序实例
Jun 02 Python
python实现FTP服务器服务的方法
Apr 11 Python
老生常谈Python序列化和反序列化
Jun 28 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
python模拟斗地主发牌
Apr 22 Python
什么是python的自省
Jun 21 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
实用函数2
2007/11/08 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
详解在Python中处理异常的教程
2015/05/24 Python
简单谈谈Python中的json与pickle
2017/07/19 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
python中pickle模块浅析
2020/12/29 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
质量月活动总结
2014/08/26 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
python实现简单的井字棋
2021/05/26 Python