I've been working with Python for a short time and I usually find the answers in the web when I have a problem, but I don't find something similar and I feel stuck, so I am going to explain my problem.
In a simplified way, I have a dataframe like this:
df:
| ID | X | Y | Z |
|---|---|---|---|
| A | 1 | 0 | 0 |
| A | 0 | 0 | 1 |
| A | 1 | 0 | 0 |
| B | 0 | 1 | 0 |
| B | 1 | 0 | 0 |
| B | 0 | 0 | 1 |
| B | 1 | 0 | 0 |
I want to move all the '1s' from the X, Y and Z columns to the row with the first value of their respective ID column.
This would be the desired output:
end_df:
| ID | X | Y | Z |
|---|---|---|---|
| A | 1 | 0 | 1 |
| B | 1 | 1 | 1 |
I have thought that I could move the values and then delete all the remaining rows with
df.groupby('ID').first(), but I don't know how I could move the values up to their respective rows.