Python 处理CSV文件:合并相同销售日期、单品编码和销售类型的销量
Python 处理CSV文件:合并相同销售日期、单品编码和销售类型的销量
本文提供了一个Python脚本,用于处理名为 'SUM.csv' 的文件。该文件包含以下列:销售日期、扫码销售时间、单品编码、单品名称、分类名称、销量(千克)、销售单价(元/千克)、销售类型、是否打折销售、批发价格、单品损耗率。
目标:
将具有相同 '销售日期'、'单品编码' 和 '销售类型' 的行的 '销量(千克)' 列的值合并,并将结果保存到一个名为 'SUMsmall.csv' 的新文件中。其他列的值保持不变。
**Python代码:**pythonimport csv
读取SUM.csv文件with open('SUM.csv', 'r') as file: reader = csv.DictReader(file) rows = list(reader)
创建SUMsmall.csv文件with open('SUMsmall.csv', 'w', newline='') as file: fieldnames = reader.fieldnames writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader()
# 处理数据 for i in range(len(rows)): row = rows[i] sales_date = row['销售日期'] product_code = row['单品编码'] sales_type = row['销售类型'] sales_volume = float(row['销量(千克)'])
# 查找是否有相同的销售日期、单品编码和销售类型的行 for j in range(i+1, len(rows)): next_row = rows[j] next_sales_date = next_row['销售日期'] next_product_code = next_row['单品编码'] next_sales_type = next_row['销售类型']
# 如果找到相同的行,则将销量相加 if sales_date == next_sales_date and product_code == next_product_code and sales_type == next_sales_type: sales_volume += float(next_row['销量(千克)'])
# 写入新行到SUMsmall.csv文件 row['销量(千克)'] = str(sales_volume) writer.writerow(row)
使用方法:
- 将上述代码保存为Python文件(例如:process_csv.py)。2. 将 'SUM.csv' 文件与Python脚本放在同一目录下。3. 运行Python脚本。
运行脚本后,将在同一目录下生成 'SUMsmall.csv' 文件,其中包含合并后的数据。
注意:
代码假设 'SUM.csv' 文件使用逗号作为分隔符。如果使用其他分隔符,请相应地修改代码中的 csv.DictReader 和 csv.DictWriter 函数。
原文地址: https://www.cveoy.top/t/topic/ejbt 著作权归作者所有。请勿转载和采集!