Search code examples
pythonpandasdataframepivot

How to pivot dataframe with new column?


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?


Solution

  • 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