Python从多张csv表中提取某类数据并汇总至一张csv表中

现有多张csv表,表格很大,表头相同

Python从多张csv表中提取某类数据并汇总至一张csv表中_第1张图片打开一个表是这样子的:

Python从多张csv表中提取某类数据并汇总至一张csv表中_第2张图片

现在需要将“资金小类”列中包含“天猫佣金”的数据行全部取出,放入新表,代码如下:

取数表 多个CSV表
目标表 一个CSV表
应用场景 将同类别的多个表中的某一类数据取出统一放到一张新表中
引用模块 os,csv
序号 代码 说明
1 # 导入模块
2 import os 批量处理文件必用
3 import csv CSV文件读写必用
4 # 设置新表的路径
5 new_path = './费用流水汇总.csv' 目标文件路径
6 # 设置文件夹路径
7 path = './费用流水/' 多个文件所在路径
8 # 返回当前目录下所有文件名
9 fill = os.listdir(path)
10 # 新建一个空列表
11 rows = []
12 # 循环文件名列表
13 for fill_name in fill:
14     # 拼接文件路径
15     fill_path = path + fill_name
16     # 以自动关闭的方式打开文件
17     with open(fill_path,'r',encoding='gbk') as f: 编码格式报错可改成:utf-8
18         # 以字典的形式获取 csv 文件信息
19         csv_reader = csv.DictReader(f)
20         # 读取表头
21         head = csv_reader.fieldnames
22         # 定义表中的字典
23         for row in csv_reader:
24         # 当【资金小类】列中含“天猫佣金”时,取出该行数据
25             if '天猫佣金' in row['资金小类']:
26                 # 将数据循环写入 rows 列表中
27                 rows.append(row)
28 # 以自动关闭的方式打开新表
29 with open(new_path,'w',encoding='gbk') as k: 编码格式报错可改成:utf-8
30     # 实例化类 DictWriter() 得到 DictWriter 对象
31     csv_writer = csv.DictWriter(k,fieldnames=head,lineterminator='\n') lineterminator='\n':可以确保无空行
32     # 写入文件的表头
33     csv_writer.writeheader()
34     # 写入文件的多行内容
35     csv_writer.writerows(rows)

运行结果如下:

Python从多张csv表中提取某类数据并汇总至一张csv表中_第3张图片

 当多个CSV表都很大,每次打开都需要加载很久时非常好用,该程序运行仅需几分钟即可出结果。

你可能感兴趣的:(python,开发语言)