Python读csv文件去掉一列后再写入新的文件实例
作者:卡路西法 发布时间:2022-05-13 14:04:12
标签:Python,csv,写入,文件
用了两种方式解决该问题,都是网上现有的解决方案。
场景说明:
有一个数据文件,以文本方式保存,现在有三列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%左右。
来源:https://www.cnblogs.com/kaluxifa/archive/2017/12/28/8134960.html


猜你喜欢
- 最近学习了python基础,写一下3大排序练练手:'''Created on 2013-8-23@author: c
- python语句与语法1.python简单语句的基本介绍>>> while True: #简单的while循环... re
- 如下所示:import osimport reimport stringfile = open("data2.txt")
- 在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Inter
- 引言在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而
- # 基础版,不依赖环境import timeimport base64import hashlibclass Token_hander():
- 我们在编写网页的时候不可避免的会遇到输入框,那么怎么设计输入框才能更加优雅呢?不同的人会有不同的答案,下面分享一个比较不错的设计。效果图细节
- 建议用pycharm,使用比较方便,并且可以直接编辑html文件import timelocatime = time.strftime(&q
- 介绍毫无疑问,任何一个试图使用 CSS 的网页设计师和开发人员都会发现不同的浏览器要求不同的样式声明。这些烦恼归咎于各浏览器及其各版本不同程
- 本文实例讲述了Python使用matplotlib的pie函数绘制饼状图功能。分享给大家供大家参考,具体如下:matplotlib具体安装方
- mysql安装启动两种方法如下所示:方法一(简单版):1.cmd进入mysql安装的bin目录:mysqld.exe –install2.n
- 涉及到的函数为import matplotlib.pyplot as pltfrom skimage import measure, col
- pytorch中index_select()的用法index_select(input, dim, index)功能:在指定的维度dim上选
- 第一题: give you two var a and b, print the value of a+b, just do it!根据提议
- 输入汉字提示拼音,试试下面这个函数,不知是不是你要的那个:查询汉字便宜到词典网<%function getpychar(ch
- 最近有在使用屏幕录制软件录制桌面,在用的过程中突发奇想,使用python能不能做屏幕录制工具,也锻炼下自己的动手能力。接下准备写使用pyth
- 以下工具类代码来自开源项目pyslam。Timerimport cv2 class Colors(object): &
- create proc addcolumn@tablename varchar(30), --表名@colname varchar(30),
- 有一张错误上报表,下面只将与本文相关的字段罗列如下:上报人(ReportPerson)、上报错误ID(ErrorID)、上报时间(Repor
- 在JavaScript中有三种声明变量的方式:var、let、const。下文给大家介绍js中三种定义变量的方式const, var, le