i want to pivot dataframe like below:
original_data = {
'A': ['a', 'b', 'c', 'd'],
'B': ['5', '6', '7', '8'],
'C': ['9', '10', '11', '12']
}
df = pd.DataFrame(original_data)
result:
A B C
0 a 5 9
1 b 6 10
2 c 7 11
3 d 8 12
fixed_data = {
'a': ['5', '9'],
'b': ['6', '10'],
'c': ['7', '11'],
'd': ['8', '12'],
'new': ['B', 'C']
}
result:
a b c d new
0 5 6 7 8 B
1 9 10 11 12 C
how can i do this?
Try,
df.set_index('A').T.rename_axis(None, axis=1).rename_axis('new').reset_index()
or as @wjandrea states in the comments below:
df.set_index('A').rename_axis(None).T.reset_index(names=['new'])
Output:
new a b c d
0 B 5 6 7 8
1 C 9 10 11 12