当前位置:首页 » 《随便一记》 » 正文

python筛选csv文件中特定的行(指定条件的数据)

26 人参与  2022年10月29日 11:32  分类 : 《随便一记》  评论

点击全文阅读


文章目录

参考网址资料python使用csv库对csv文件特定行进行筛选筛选csv文件中特定的行 使用pandas和numpy库对数据进行提取与筛选

参考网址资料

(自己整理一遍过程是为了加深自己对csv库的理解,方便以后的查阅。大家直接看这两个博主的帖子就足够了)
Python数据分析基础——CSV文件——筛选特定的行
Python 提取csv数据并筛选指定条件数据
csv — CSV 文件读写

python使用csv库对csv文件特定行进行筛选

先给出一个官方文档中简单的csv读文件实例:
(实际上csv.reader里的delimiter和quotechar可以忽略,具体用法可以去官方文档查看)

import csvwith open('eggs.csv', newline='') as csvfile:spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')for row in spamreader:print(', '.join(row))#运行结果:Spam, Spam, Spam, Spam, Spam, Baked BeansSpam, Lovely Spam, Wonderful Spam

再给出一个官方文档中一个简单的写文件示例:

import csvwith open('names.csv', newline='') as csvfile:reader = csv.DictReader(csvfile)for row in reader:print(row['first_name'], row['last_name'])#运行结果Eric IdleJohn Cleeseprint(row){'first_name': 'John', 'last_name': 'Cleese'}

可以看出,我们都是先用open函数打开一个文件指针,然后再通过(读或写)的reader函数进行操作

接下来我们可以对文件内容进行筛选了

筛选csv文件中特定的行

在文件中,当行中的值满足一个具体条件时,才需要保留这些行。在这种情况下,可以检验行中的值是否满足具体的条件,然后筛选出满足条件的行。

例如在我这里的文件里,我希望留下image_id符合某个范围的数据
在这里插入图片描述
先用读指针对要读的文件进行操作,再用写指针对要写入的文件进行操作。

写入文件时,先写入文件的表头(第一行,标题行)
再用for循环和if语句筛选第一列中符合条件的那一行,有符合条件的那一行就把那一行都写入即可。

with open("F\inputfile.csv",'r',encoding='UTF-8') as load_input:#打开要读取的csv文件进行只读操作    with open("outputfile.csv", 'w', newline='',encoding='UTF-8') as out_output: #打开要写入的csv文件进行写操作        ereader = csv.reader(load_input) #用reader函数读入文件指针        ewriter = csv.writer(out_output) #用writer函数读入文件指针        eheader = next(ereader)  # 取出文件的第一行,也就是表头        ewriter.writerow(eheader)  # 把表头写入我们要写入的文件        for row_list in ereader:            image_id = str(row_list[0]).strip() # 选取文件的第一列(即image_id那一列)             if image_id > 10000:  #如果第一列中的image_id数值大于10000                expression_writer.writerow(row_list) #把这一行都写入要写入的文件

注意,之前的博主没有在open函数中加入encoding部分,不加入的话默认时gbk格式,这样有的时候用print函数会报错,我这里已经加上了

使用pandas和numpy库对数据进行提取与筛选

https://blog.csdn.net/m0_46159136/article/details/113618135

改日自己亲测后整理


点击全文阅读


本文链接:http://zhangshiyu.com/post/46154.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1