通过添加某些列的值从Excel行中删除重复项

时间:2019-02-13 12:07:16

标签: python sql excel database algorithm

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

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

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

非常感谢。

4 个答案:

答案 0 :(得分:3)

将前三列复制到另一张纸或其他位置。使用“删除重复项”。为了找到数量的总和,请使用与此类似的公式:

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

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

答案 1 :(得分:1)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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