Convert dataframe from wide to long - pandas

后端 未结 1 1580
时光取名叫无心
时光取名叫无心 2021-01-16 00:43

I have a dataframe like this:

index    S_1 S_2 S_3 S_4
 0        1    0   0   1
 1        1    1  Nan Nan

I am trying to change it from long

相关标签:
1条回答
  • 2021-01-16 01:00

    There is pandas.wide_to_long, which is nice when the columns have stubs like that.

    import pandas as pd
    
    df.reset_index(inplace=True,drop=True)
    df['id'] = df.index
    df = pd.wide_to_long(df, stubnames='S_', i='id', j='num').reset_index().rename(columns={'S_':'S'})
    
    #  id num  index    S
    #0   0   1      0  1.0
    #1   1   1      1  1.0
    #2   0   2      0  0.0
    #3   1   2      1  1.0
    #4   0   3      0  0.0
    #5   1   3      1  NaN
    #6   0   4      0  1.0
    #7   1   4      1  NaN
    
    0 讨论(0)
提交回复
热议问题