我有一个Excel文件,其中包含500行,其中包含产品详细信息及其在不同程序中的数量。所有这500行都是重复的产品,但数量不同。我想删除重复项并加总数量,所以我不想只包含一行(而不是5个具有productID D1的行)(其余4个行的数量添加到其余行) [我正在寻找从最上面的一个创建底表]
我在stackoverflow上发现了类似的问题,人们建议将数据上传到数据库中,并且具有sum(quantity1),sum(quantity2),...但是我有150列,因此我无法为此编写查询。 (Removing duplicate rows by adding column value)
我正在考虑编写python脚本,但不确定如何处理重复项。
非常感谢。
答案 0 :(得分:3)
将前三列复制到另一张纸或其他位置。使用“删除重复项”。为了找到数量的总和,请使用与此类似的公式:
=SUMIFS($D$2:$D$500, $A$2:$A$500, $A2, $B$2:$B$500, $B2, $C$2:$C$500, $C2)
然后拖动公式以查找其他数量。
答案 1 :(得分:1)
您可以在excel中尝试“数据透视表”。比总结您的数据。
https://exceljet.net/things-to-know-about-excel-pivot-tables
答案 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