I'm trying to relate the groupby filtered dataframe to the original dataframe. After doing the groupby I lose some columns that I had in the original dataframe. The idea is to relate it back to their respective STATE and CITY values. But when I try to relate back the dataframe grows back to normal size with 17 rows. I just want the interface of the original dataframe to the final dataframe which contains 9 rows.
Original dataframe:
| COD |STATE| CITY | AZIM | SET|TEC|
0 |ALAAD_0001 |AL |MAC |0 |1 |4 |
1 |ALAAD_0001 |AL |MAC |120 |2 |4 |
2 |ALAAD_0001 |AL |MAC |120 |2 |4 |
3 |ALAAD_0001 |AL |MAC |240 |3 |4 |
4 |BAPID_0001 |BA |SAL |20 |1 |2 |
5 |BAPID_0001 |BA |SAL |20 |1 |2 |
7 |BAPID_0001 |BA |SAL |100 |2 |2 |
8 |BAPID_0001 |BA |SAL |210 |3 |2 |
9 |BAPID_0001 |BA |SAL |250 |3 |2 |
10 |BAPID_0001 |BA |SAL |250 |3 |2 |
11 |CEMBC_0003 |CE |FOR |90 |1 |4 |
12 |CEMBC_0003 |CE |FOR |80 |1 |4 |
13 |CEMBC_0003 |CE |FOR |160 |2 |4 |
14 |CEMBC_0003 |CE |FOR |160 |2 |4 |
15 |CEMBC_0003 |CE |FOR |170 |2 |4 |
16 |CEMBC_0003 |CE |FOR |280 |3 |4 |
After groupby:
| COD |TEC |SET |AZIM|
0 |ALAAD_0001 |4 |1 |0 |
1 |ALAAD_0001 |4 |2 |120 |
2 |ALAAD_0001 |4 |3 |240 |
3 |BAPID_0001 |2 |1 |20 |
4 |BAPID_0001 |2 |2 |100 |
5 |BAPID_0001 |2 |3 |250 |
6 |CEMBC_0003 |4 |1 |90 |
7 |CEMBC_0003 |4 |2 |160 |
8 |CEMBC_0003 |4 |3 |280 |
df_cut = (
df.groupby(["COD","TEC","SET"])
.AZIM
.agg(lambda x: pd.Series.mode(x).max())
.reset_index()
)
Expected output:
| COD | TEC | SET |AZIM | STATE | CITY |
0 |ALAAD_0001 |4 |1 |0 | AL |MAC |
1 |ALAAD_0001 |4 |2 |120 | AL |MAC |
2 |ALAAD_0001 |4 |3 |240 | AL |MAC |
3 |BAPID_0001 |2 |1 |20 | BA |SAL |
4 |BAPID_0001 |2 |2 |100 | BA |SAL |
5 |BAPID_0001 |2 |3 |250 | BA |SAL |
6 |CEMBC_0003 |4 |1 |90 | CE |FOR |
7 |CEMBC_0003 |4 |2 |160 | CE |FOR |
8 |CEMBC_0003 |4 |3 |280 | CE |FOR |