Я борюсь с суммой серий после того, как уже сгруппировал фрейм данных, и я надеялся, что кто-нибудь может помочь мне с идеей.В основном, в приведенном ниже примере мне нужно иметь сумму для каждого «Материала».В основном материал "ABC" должен дать мне 2, а все остальные, так как они имеют только одну знаковую операцию, будут иметь одинаковое значение.
import numpy as np
import pandas as pd
df = pd.DataFrame({
"Material" : ["M-12", "H4-LAMPE", "M-12", "H4-LAMPE",
"ABC" , "H4-LAMPE", "ABC", "ABC"] ,
"Quantity" : [6, 1, 3, 5, 1, 1, 10, 9],
"TYPE": ["+", "-", "+", "-", "+", "-", "+", "-"]})
df.groupby(['Material', "Quantity"], as_index=False).count()
listX = []
for item in df["TYPE"]:
if item == "+":
listX.append(1)
elif item == "-":
listX.append(-1)
else:
pass
df["Sign"] = lista
df["MovementsQty"] = df["Quantity"]*df["Sign"]
#df = df.groupby(["Material", "TYPE", "Quantity1"]).sum()
df1 = df.groupby(["Material", "TYPE"]).sum()
df1.drop(columns=["Quantity", "Sign"], inplace=True)
print(df1)
Результат:

Желаемый результат:

Я попытался еще раз подвести итог, чтобы рассмотреть это по-другому, но пока мне это не удалось, и я думаю, что мне нужна помощь.
Большое спасибо за помощь