Here is the general way to solve this problem in two steps.
According to the official Pandas documentation, and based on the examples shown on Moonbooks (source : https://fr.moonbooks.org/Articles/Comment-trouver-la-valeur-maximum-dans-une-colonne-dune-dataframe-avec-pandas-/), the first step is to import the pandas library this way : import pandas as pd. Pandas is used for data analysis, grouping and filtering.
To illustrate the idea, you can create a DataFrame, which is a table of structure data :
data = {
'ITEM NUMBER': [100, 105, 100, 100, 100, 100, 105, 105, 105, 105, 100],
'STATUS': ["OK", "OK", "NG", "NG", "OK", "OK", "OK", "NG", "OK", "OK", "NG"],
'TYPE': ["RED", "YELLOW", "RED", "BLACK", "RED", "BLACK", "YELLOW", "YELLOW", "RED", "YELLOW", "BLACK"],
'AREA': ['A01', 'B01', "A02", "A03", "A04", "A05", "B02", "B03", "B04", "B05", "A06"],
'QUANTITY': [5, 15, 8, 4, 9, 2, 19, 20, 3, 4, 1],
'PACKS TO FILL': [10, 5, 2, 6, 1, 8, 1, 0, 17, 16, 9]
}
Step 1:
Once done, keep only the rows where the numeric column is greater or equal to zero :
df_filtered = data[data['COLUMN_NAME'] >= 0]
Step 2:
Next step, use groupby() to group by the other columns:
grouped = df_filtered.groupby(['ITEM NUMBER', 'STATUS', 'TYPE']).sum()
you also can use .mean(), .size(), or .agg() depending on your needs.
I want to reassure you that :
The example come from a reliable source
The method follows the official Pandas documentation
Filtering and grouping is a standard way to work with DataFrames.