I have a dataframe that I need to process using Python. The dataframe represents source data and has the following structure:
Centre de profit | No Piece FI | EOTP | OS | No Tiers SAP | CP | intitulé du poste |
---|---|---|---|---|---|---|
7N6D | 10 | 5D | 74LB | 15565 | 150 | |
7N6D | 12 | 5D | 98LB | 15565 | -150 | BLABLA 200 blabla |
8DNS | 13 | 9D | 924L | 19895 | 90 | blablabal |
8DIZ | 15 | D2 | 295K | 29855 | 924 | |
2SED | 200 | 68C | 38DI | 15565 | 150 | |
8DIZ | 18 | D2 | 590D | 29855 | -924 | |
4949D | 97812 | 5959D | 1984 | 29855 | 924 |
In the next step, I want to find values X and Y that cancel each other based on the "CP" column and that are inside the same "Centre de profit". Then, using the absolute value of the "CP" of Y, along with the "No Tiers SAP" and "EOTP" values of the Y row, I want to find the Z row. Additionally, in some cases, the "intitulé du poste" column contains a number that corresponds to a "No Piece FI" If such a number exists, it represents also the Z row.
Here is the intermediate table:
Centre de profit | No Piece FI | EOTP | OS | No Tiers SAP | CP | intitulé du poste | XYZ |
---|---|---|---|---|---|---|---|
7N6D | 10 | 5D | 74LB | 15565 | 150 | X1 | |
7N6D | 12 | 5D | 98LB | 15565 | -150 | BLABLA 200 blabla | Y1 |
8DNS | 13 | 9D | 924L | 19895 | 90 | blablabal | |
8DIZ | 15 | D2 | 295K | 29855 | 924 | X2 | |
2SED | 200 | 68C | 38DI | 15565 | 150 | Z1 | |
8DIZ | 18 | D2 | 590D | 29855 | -924 | Y2 | |
4949D | 97812 | 5959D | 1984 | 29855 | 924 | Z2 |
Next, I want to take the "OS" and "EOTP" values from the Y row and add them as new columns "OS cor" and "EOTP cor" to the Z row. If there is a "No Piece FI" inside the "intitulé du poste" column that matches the "No Piece FI" value, I also want to add 100% to a "Fiability" column; otherwise, I'll add 50%.
The expected output would be:
Centre de profit | No Piece FI | EOTP | OS | No Tiers SAP | CP | intitulé du poste | XYZ | Work-on-it | OS cor | EOTP cor | Fiability |
---|---|---|---|---|---|---|---|---|---|---|---|
7N6D | 10 | 5D | 74LB | 15565 | 150 | X1 | Canceled | ||||
7N6D | 12 | 5D | 98LB | 15565 | -150 | BLABLA 200 blabla | Y1 | Canceled | |||
8DNS | 13 | 9D | 924L | 19895 | 90 | blablabal | |||||
8DIZ | 15 | D2 | 295K | 29855 | 924 | X2 | Canceled | ||||
2SED | 200 | 68C | 38DI | 15565 | 150 | Z1 | Corrected | 98LB | 5D | 100% | |
8DIZ | 18 | D2 | 590D | 29855 | -924 | Y2 | Canceled | ||||
4949D | 97812 | 5959D | 1984 | 29855 | 924 | Z2 | Correct | 590D | D2 | 50% |
Thanks you, if you have any questions I'm here.
source https://stackoverflow.com/questions/76401956/search-some-values-inside-a-dataframe-and-modify-some-rows-using-python
Comments
Post a Comment