Python合并CSV文件相同数据:按日期、编码和销售类型汇总销量

本文将介绍如何使用Python处理SUM.csv文件,将相同销售日期、单品编码和销售类型的数据行合并,并将销量(千克)相加,最终生成一个新的SUMsmall.csv文件。

需求

有一个名为SUM.csv的文件,包含以下列:

  • 销售日期
  • 扫码销售时间
  • 单品编码
  • 单品名称
  • 分类名称
  • 销量(千克)
  • 销售单价(元/千克)
  • 销售类型
  • 是否打折销售
  • 批发价格
  • 单品损耗率

需要根据以下条件合并数据:

  1. 销售日期相同
  2. 单品编码相同
  3. 销售类型相同

满足以上条件的数据行,将其'销量(千克)'列的值相加,其他列的值保持不变,并将合并后的数据写入到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)

代码说明

  1. 使用csv模块读取和写入CSV文件。
  2. 使用字典sales_dict存储每个唯一组合(日期、单品编码、销售类型)的销量。
  3. 遍历SUM.csv文件,将满足条件的数据行的销量累加到字典中对应的键值对中。
  4. 最后遍历字典,将合并后的数据写入到SUMsmall.csv文件中。

总结

本文介绍了如何使用Python合并CSV文件中相同数据的方法,通过代码示例详细讲解了如何实现按日期、单品编码和销售类型汇总销量的功能。你可以根据实际需求修改代码,实现更复杂的数据处理操作。

Python合并CSV文件相同数据:按日期、编码和销售类型汇总销量

原文地址: https://www.cveoy.top/t/topic/ejvi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录