【问题标题】:Removing duplicates from Excel rows by adding values of some columns通过添加某些列的值从 Excel 行中删除重复项
【发布时间】:2020-10-04 16:52:56
【问题描述】:

我有一个 Excel 文件,其中包含 500 行,其中包含不同程序中的产品详细信息及其数量。所有这 500 行都是不同数量的重复产品。我想删除重复项并将数量相加,因此我只想拥有一行而不是具有 productID D1 的 5 行(将其他 4 行的数量添加到剩余行) [我正在寻找从顶部创建底部表]

我在 stackoverflow 上发现了类似的问题,人们建议将数据上传到数据库中并有 sum(quantity1), sum(quantity2),...但是我有 150 列,所以我无法为此编写查询。 (Removing duplicate rows by adding column value)

我正在考虑编写一个 python 脚本,但我不确定如何处理重复项。

非常感谢。

【问题讨论】:

  • 你试过旋转吗?对于价格,您可以取 MAX,其他人可以取 SUM。
  • 旋转不起作用,因为我必须将 150 个项目拖到列中,不是吗?

标签: python sql excel database algorithm


【解决方案1】:

将前 3 列复制到另一张纸或其他地方。使用“删除重复项”。为了找到数量之和,请使用类似于以下的公式:

=SUMIFS($D$2:$D$500, $A$2:$A$500, $A2, $B$2:$B$500, $B2, $C$2:$C$500, $C2)

然后拖动公式查找其他数量。

【讨论】:

  • 感谢简单的 excel 解决方案。它对我有用,我稍后会尝试其他解决方案
【解决方案2】:
【解决方案3】:

我看不到您的图片,但假设它是相当标准的布局: 如果您可以按 productid 对数据进行排序,则可以为此使用 Excel 的内置功能。使用数据、小计 - 指定在 ProductID 的每次更改中您希望对数量求和。然后折叠结果表,以便只显示总数。仅使用主页、查找和选择、转到特殊的可见单元格。然后复制并粘贴到第二张纸上 您现在拥有所有产品总数。

【讨论】:

    【解决方案4】:
    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame({
            "ProductsID": ["A1", "A1", "B1", "B1", "B1"], 
            "Category": ["MM", "MM", "NN", "NN", "NN"],
            "Price": [50, 50, 42, 42, 42],
            "Quantity1": [1, 8, 5, np.nan, 4],
            "Quantity2": [6, 3, np.nan, 2, 3]})
    
    grouped = df.groupby(by=["ProductsID", "Category"])
    agged = grouped.agg({"Price": "max", 
                    "Quantity1": "sum", 
                    "Quantity2":"sum"})
    
    result = agged.reset_index()
    

    结果:

      ProductsID Category  Quantity1  Quantity2  Price
    0         A1       MM        9.0        9.0     50
    1         B1       NN        9.0        5.0     42
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 2023-02-25
    • 2011-12-26
    • 2021-07-01
    • 2011-07-23
    相关资源
    最近更新 更多