I have the following data frame
df = pd.DataFrame([['1','aa', 'fff'], ['1', 'aa', 'ggg'], ['1', 'aa', 'eee'],
['2','aa', 'eee'], ['2', 'aa', 'ggg'], ['2', 'aa', 'fff'],
['3','bb', 'hhh'], ['3', 'bb', 'mmm'], ['3', 'bb', 'kkk'],
['3', 'bb', 'jjj'], ['4','bb', 'kkk'], ['4', 'bb', 'mmm'],
['4', 'bb', 'hhh'], ['4', 'bb', 'jjj'], ['5','aa', 'ggg'],
['5', 'aa', 'eee'], ['5', 'aa', 'fff']], columns=['foo', 'bar','name_input'])
Now, I need to sort values in column "name_input" based on a condition. The condition is
- for bar == aa , then row values == ['eee', 'fff', 'ggg'] and for bar == bb, then row values == ['hhh' ,'jjj', 'kkk','mmm']
In the end, I am aiming to have my output as following
df = pd.DataFrame([['1','aa', 'eee'], ['1', 'aa', 'fff'], ['1', 'aa', 'ggg'],
['2','aa', 'eee'], ['2', 'aa', 'fff'], ['2', 'aa', 'ggg'],
['3','bb', 'hhh'], ['3', 'bb', 'jjj'], ['3', 'bb', 'kkk'],
['3', 'bb', 'mmm'], ['4','bb', 'hhh'], ['4', 'bb', 'jjj'],
['4', 'bb', 'kkk'], ['4', 'bb', 'mmm'], ['5','aa', 'eee'],
['5', 'aa', 'fff'], ['5', 'aa', 'ggg']], columns=['foo', 'bar','name_input'])
I tried reorder index by rows. However it doesn't seem to work.
df = df.pivot(index="foo", columns="bar", values="name_input")
Any help is much appreciated!