Pandas - unstack column values into new columns

前端 未结 2 1869
小蘑菇
小蘑菇 2021-01-04 15:27

I have a large dataframe and I am storing a lot of redundant values that are making it hard to handle my data. I have a dataframe of the form:

import pandas          


        
2条回答
  •  猫巷女王i
    2021-01-04 16:12

    If you group your meta columns into a list then you can do this:

    metas = ['meta1', 'meta2']
    
    new_df = df.set_index(['name'] + metas).unstack('name')
    print new_df
    
                data    
    name          n1  n2
    meta1 meta2         
    a     g       y1  y2
    b     h       y3  y4
    

    Which gets you most of the way there. Additional tailoring can get you the rest of the way.

    print new_df.data.rename_axis([None], axis=1).reset_index()
    
      meta1 meta2  n1  n2
    0     a     g  y1  y2
    1     b     h  y3  y4
    

提交回复
热议问题