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进程类subprocess的一些操作方法例子
Nov 22 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
python实现周期方波信号频谱图
Jul 21 Python
python批量修改图片大小的方法
Jul 24 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
Jul 01 Python
学python爬虫能做什么
Jul 29 Python
Python logging模块handlers用法详解
Aug 14 Python
Python更改pip镜像源的方法示例
Dec 01 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP 变量类型的强制转换
2009/10/23 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
PyMongo安装使用笔记
2015/04/27 Python
用Python解决计数原理问题的方法
2016/08/04 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
深入理解python对json的操作总结
2017/01/05 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
python主线程捕获子线程的方法
2018/06/17 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python Selenium参数配置方法解析
2020/01/19 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
天网面试题
2013/04/07 面试题
学生上课迟到检讨书
2015/01/01 职场文书
作弊检讨书
2015/01/27 职场文书
写给导师的自荐信
2015/03/06 职场文书
销售口号霸气押韵
2015/12/24 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android