You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于C#开发数据排序程序的技术求助

批量数据去重合并与整理实现方案

核心需求

  • 读取多份包含ID、Length、Priority、ItemCode、Quantity、CompletedItem字段的原始数据文件
  • 识别重复数据(通常以ItemCode或多字段组合为判断依据)
  • 合并重复条目,累加对应Quantity数值
  • 输出排序后的整理结果

新手友好实现方案(Python)

步骤1:准备工具

先安装数据处理库,打开命令行执行:

pip install pandas openpyxl

(openpyxl用于读写Excel文件)

步骤2:完整代码示例

import pandas as pd
import os

# 替换为你的原始数据文件夹路径
data_dir = "./原始数据文件"
# 存储所有读取到的数据
all_datasets = []

# 遍历文件夹读取所有csv/xlsx文件
for file_name in os.listdir(data_dir):
    if file_name.lower().endswith((".csv", ".xlsx")):
        file_path = os.path.join(data_dir, file_name)
        # 根据文件类型读取数据
        if file_name.endswith(".csv"):
            df = pd.read_csv(file_path)
        else:
            df = pd.read_excel(file_path, engine="openpyxl")
        all_datasets.append(df)

# 合并所有数据到一个表格
merged_data = pd.concat(all_datasets, ignore_index=True)

# 按关键字段分组,累加Quantity(可根据需求修改分组字段,比如['ID', 'ItemCode'])
cleaned_data = merged_data.groupby(['ItemCode'], as_index=False).agg({
    'ID': 'first',          # 保留重复项中第一个出现的ID
    'Length': 'first',      # 保留第一个Length值
    'Priority': 'first',    # 保留第一个Priority值
    'Quantity': 'sum',      # 累加所有重复项的Quantity
    'CompletedItem': 'first'# 保留第一个CompletedItem值
})

# 按需求排序(示例:按Priority降序、Quantity升序,可自行调整)
sorted_data = cleaned_data.sort_values(by=['Priority', 'Quantity'], ascending=[False, True])

# 输出整理后的数据到Excel文件
sorted_data.to_excel("./整理完成的数据.xlsx", index=False, engine="openpyxl")
print("数据整理完成!")

关键调整点

  • 重复判断规则:如果需要多个字段联合判定重复(比如ID+ItemCode),把groupby(['ItemCode'])改成groupby(['ID', 'ItemCode'])即可
  • 排序规则:修改sort_values里的字段列表和ascending参数,匹配你的需求
  • 缺失值处理:如果原始数据有缺失,可在合并后添加merged_data = merged_data.dropna()删除缺失行,或用merged_data.fillna(0)填充默认值

内容的提问来源于stack exchange,提问作者Damon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:54:31