I have a dataframe in the following format:
How can I move any existing values to the left (i.e. left shift the columns for each row removing any NaN values / right-shifiting the NaN values?
The desired result would be similar to:
id,level_1__value,level_2__value,level_3__value,last_not_null
1,1,nan,nan,2
2,5,nan,nan,5
3,3,5,nan,6
4,7,2,2
5,3,nan,3
...
Below, you find the code which defines the dataframe above:
import pandas as pd
import numpy as np
from numpy import nan
df = pd.DataFrame({'id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9}, 'level_1__value': {0: 1.0, 1: nan, 2: 3.0, 3: 4.0, 4: 5.0, 5: nan, 6: 7.0, 7: nan, 8: 34.0}, 'level_2__value': {0: nan, 1: nan, 2: 5.0, 3: 7.0, 4: nan, 5: nan, 6: nan, 7: nan, 8: nan}, 'level_3__value': {0: nan, 1: 5.0, 2: nan, 3: 2.0, 4: 3.0, 5: nan, 6: nan, 7: 6.0, 8: nan}, 'last_not_null': {0: 2.0, 1: 5.0, 2: 6.0, 3: 2.0, 4: 3.0, 5: 3.0, 6: 10.0, 7: 6.0, 8: 34.0}})
display(df)