问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 读取多个csv文件中某一列,并生成一个新csv文件

发布网友 发布时间:2022-04-23 17:39

我来回答

3个回答

懂视网 时间:2022-05-10 20:27

本文主要为大家分享一篇Python读csv文件去掉一列后再写入新的文件实例,具有很的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家更好掌握Python

用了两种.方式解决该问题,都是网上现有的解决方案。

场景说明:

有一个数据文件,以文本方式保存,现在有三列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]+"
"
 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
27W976777
55W19891509
110W43123158

从上面测试结果来看,dataframe的效率提高大约30%左右。

热心网友 时间:2022-05-10 17:35

csv文件应该是用逗号分隔得才对,否则怎么算作是csv文件。楼主你开玩笑吧。否则你这只是一个普通的文本文件。如果是真正的csv文件,我只说一点,python里面有csv模块,专门处理csv文件。如果是空格分割应该也可以,建议你,看一下python的csv模块的API,蛮简单的代码,其实如果不用的话自己写也可以。不是很复杂。代码片段如下:

def deal_file(file_in, file_out)
    with open(file_in, 'r') as f_in:
        with open(file_out, 'w') as f_out:
            for line in f_in:
                f_out.write(line.split(' ')[2] + '\n')
之后你可以将所有的输入文件放到一个列表里面,进行迭代调用这个函数就可以了。

热心网友 时间:2022-05-10 18:53

参考方法如下:
逐行处理:
for line in open("samples/sample.csv"):
title, year, director = line.split(",") //以“,”号为分割,按逗号将数据分成三部分;
print year, title
使用csv模块处理:
import csv
reader = csv.reader(open("samples\sample.csv"))
for title, year, director in reader:
print year, title
改变分隔符;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
火狐浏览器如何将网页保存为PDF文件 【亲测好用】网页下载保存为pdf u盘坏芯片坏能修吗-(u盘芯片坏了能修吗) 快捷糖水目录 微信上如何和男人撒娇? 去日本旅游要带什么好? 年月日电脑怎么设置表格excel表格出生日期列如何设置为年月日格式 ...一定要对女主好,宠她。要打包下载,谢谢亲。 空气净化器滤芯有酸味的原因 不同种类的蛋糕分别代表什么含义呢? 湖南有什么好玩的景点??? 旅行青蛙蜗牛老来家里要吃的为什么? 女生要是梦见在找工作的途中遇见好多小龙是怎么回事? PYTHON关于excel和csv转换 山西名胜古迹及介绍 python 关于csv文件创建的问题 求职的人梦见被鬼怪附身,圈禁在一个不认识的地方 python中pandas如何读取csv时间数据并改变格式? 准备去找工作做梦梦到和很多人在一起跑步是什么意思? 中国共有多少个国家级风景区? Python如何读取csv文件某一列的每一行数据,并判断该数值是否满足条件... 全民k歌怎么往苹果手机上导歌曲 怎么将Python的运行结果导出为csv格式? 找工作的人梦见家里人杀牛? 五岳四镇是指什么山 正在找工作的人梦见蛇吓了一跳,然后把蛇杀吃了是什么预兆? 如何在python中生成csv文件 旅行青蛙中给那只蜗牛吃东西有什么用? 为什么南方的古镇比北方的古村落更受追捧? 怎么把全民k歌上的歌变成mp3存在手机 正在找工作,梦到上班路上被别人用好长竹竿刺到身上,代表什么? 找工作人梦见自己爬山问是否成功? python处理CSV文件加什么代码才可以保持处理前后格式一样的?跪求大佬指... 求山西文化代表,包括建筑,风景,人文 python csv写入的字符串是什么格式 介绍一下关于五岳的知识 python保存csv文件全为一列,值带引号,分隔符为分号,该怎么做,或者csv... 我正在找工作。昨晚梦见自己掉了六颗牙齿 山西的旅游景点 农村医保怎么查 latex 如何另起一页 请问农村医保可在什么地方查询,激了这么多年的医保也不知钱去哪里了? latex里,另起一行用\par,另起一页用什么啊? 农村医保怎么查个人信息? latex里参考文献另起一页加什么命令 latex里,另起一行用par,另起一页用什么? latex 另起一行 怎样在latex中另起一行时空两格 latex 公式加上编号就太长了!!!如何让编号另起一行???求解答!!! latex book 类取消下一章的另起一页怎么弄啊?