I have a dataframe like this:
Launch Article Sequence Machine Quantity Date …
68033 F2500 10 lathe 1 200 01/02/2022 …
68033 F2500 20 lathe 1 190 01/02/2022 …
68033 F2500 30 borer 3 175 02/02/2022 …
68033 F2500 40 milling 1 175 03/03/2022 …
71562 F2500 10 lathe 3 632 12/12/2022 …
71562 F2500 20 lathe 4 593 15/12/2022 …
71562 F2500 30 borer 3 560 16/12/2022 …
71562 F2500 40 milling 2 555 16/12/2022 …
69872 F302 10 lathe 2 5463 04/06/2022 …
69872 F302 30 lathe 3 5102 11/06/2022 …
70444 F302 20 lathe 1 3125 27/07/2022 …
70444 F302 30 lathe 3 2965 31/07/2022 …
… … … … … … …
124.531 rows x 12 columns
What i need to do is a some kind of group by where, for each article i select the maximum launch number, and after that, the minimum sequence number with its relative machine.
The end result should look like this:
Article Launch Sequence Machine
F2500 71562 10 lathe 3
F302 70444 20 lathe 1
… … … …
I've tried to do it with pandas groupby with .agg, but it doesn't work. The following code, for example, gives me the max launch and min sequence overall and not the min sequence related to the max launch. I've tried some other approaches with sort_values and such, but with no success.
Last_Lathe_df = Last_Lathe_df.groupby(['Article'], as_index=False).agg({'Launch': 'max', 'Sequence': 'min', 'Machine': 'first'})