Python合并CSV文件相同数据:按日期、编码和销售类型汇总销量
Python合并CSV文件相同数据:按日期、编码和销售类型汇总销量
本文将介绍如何使用Python处理SUM.csv文件,将相同销售日期、单品编码和销售类型的数据行合并,并将销量(千克)相加,最终生成一个新的SUMsmall.csv文件。
需求
有一个名为SUM.csv的文件,包含以下列:
- 销售日期
- 扫码销售时间
- 单品编码
- 单品名称
- 分类名称
- 销量(千克)
- 销售单价(元/千克)
- 销售类型
- 是否打折销售
- 批发价格
- 单品损耗率
需要根据以下条件合并数据:
- 销售日期相同
- 单品编码相同
- 销售类型相同
满足以上条件的数据行,将其'销量(千克)'列的值相加,其他列的值保持不变,并将合并后的数据写入到SUMsmall.csv文件中。
Python代码实现
import csv
# 读取SUM.csv文件
with open('SUM.csv', 'r') as file:
reader = csv.reader(file)
header = next(reader) # 读取表头
# 创建SUMsmall.csv文件并写入表头
with open('SUMsmall.csv', 'w', newline='') as outfile:
writer = csv.writer(outfile)
writer.writerow(header)
# 创建一个字典用于存储每个唯一的组合(日期、单品编码、销售类型)的销量
sales_dict = {}
# 遍历SUM.csv中的每一行
for row in reader:
date = row[0]
code = row[2]
sale_type = row[7]
quantity = float(row[5])
# 检查唯一组合是否已存在于字典中
key = (date, code, sale_type)
if key in sales_dict:
# 如果存在,则将销量相加
sales_dict[key] += quantity
else:
# 如果不存在,则将该组合添加到字典中,并将销量初始化为当前行的销量
sales_dict[key] = quantity
# 遍历字典中的每个组合,将其写入SUMsmall.csv文件
for key, quantity in sales_dict.items():
row = list(key) + [quantity] + [''] * (len(header) - 4)
writer.writerow(row)
代码说明
- 使用
csv模块读取和写入CSV文件。 - 使用字典
sales_dict存储每个唯一组合(日期、单品编码、销售类型)的销量。 - 遍历SUM.csv文件,将满足条件的数据行的销量累加到字典中对应的键值对中。
- 最后遍历字典,将合并后的数据写入到SUMsmall.csv文件中。
总结
本文介绍了如何使用Python合并CSV文件中相同数据的方法,通过代码示例详细讲解了如何实现按日期、单品编码和销售类型汇总销量的功能。你可以根据实际需求修改代码,实现更复杂的数据处理操作。
原文地址: https://www.cveoy.top/t/topic/ejvi 著作权归作者所有。请勿转载和采集!