Python合并CSV文件相同数据:以'销售日期'、'单品编码'和'销售类型'分组汇总'销量(千克)'

您是否需要处理大量销售数据,并将相同'销售日期'、'单品编码'和'销售类型'的'销量(千克)'汇总? 本文将为您提供一个使用Python解决此问题的方案。

问题描述

假设您有一个名为SUM.csv的CSV文件,其中包含以下列:

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

您需要将'销售日期'、'单品编码'和'销售类型'都相同的行合并,并将它们的'销量(千克)'相加,其他列保持不变。最终生成一个新的CSV文件SUMsmall.csv。

Python解决方案

以下是使用Python编程语言实现此功能的示例代码:pythonimport csv

读取SUM.csv文件with open('SUM.csv', 'r') as file: reader = csv.DictReader(file) rows = list(reader)

处理数据并生成新的行new_rows = []for i in range(len(rows)): current_row = rows[i] if i > 0: previous_row = rows[i-1] if current_row['销售日期'] == previous_row['销售日期'] and current_row['单品编码'] == previous_row['单品编码'] and current_row['销售类型'] == previous_row['销售类型']: current_row['销量(千克)'] = str(float(current_row['销量(千克)']) + float(previous_row['销量(千克)'])) continue new_rows.append(current_row)

将处理后的数据写入SUMsmall.csv文件with open('SUMsmall.csv', 'w', newline='') as file: fieldnames = ['销售日期', '扫码销售时间', '单品编码', '单品名称', '分类名称', '销量(千克)', '销售单价(元/千克)', '销售类型', '是否打折销售', '批发价格', '单品损耗率'] writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerows(new_rows)

代码说明:

  1. 使用csv模块读取和写入CSV文件。2. 遍历所有数据行,比较当前行和上一行的'销售日期'、'单品编码'和'销售类型'是否相同。3. 如果相同,则将当前行的'销量(千克)'累加到上一行的'销量(千克)'上,并跳过当前行的写入。4. 如果不同,则将当前行写入新的CSV文件。

使用方法:

  1. 将SUM.csv文件与Python脚本放在同一目录下。2. 确保已安装Python的csv模块。3. 运行Python脚本。

运行脚本后,您将在同一目录下找到一个名为SUMsmall.csv的新文件,其中包含合并后的数据。

希望本文能帮助您使用Python高效地处理CSV文件并完成数据合并任务!

Python合并CSV文件相同数据:以'销售日期'、'单品编码'和'销售类型'分组汇总'销量(千克)'

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

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