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编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
Python调用.NET库的方法步骤
Dec 27 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
在Python中实现字典反转案例
Dec 05 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 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动态生成JavaScript代码
2009/03/09 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
python 将字符串中的数字相加求和的实现
2019/07/18 Python
python实时监控logstash日志代码
2020/04/27 Python
如何将json数据转换为python数据
2020/09/04 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
电子商务专员岗位职责
2013/12/11 职场文书
中式面点餐厅创业计划书
2014/01/29 职场文书
铁路安全反思材料
2014/12/24 职场文书
公司感谢信范文
2015/01/22 职场文书
2015员工年度考核评语
2015/03/25 职场文书
横空出世观后感
2015/06/09 职场文书
团委副书记工作总结
2015/08/14 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers