2017-07-19 3 views
0

ich unten einen Datenrahmen ähnlich dem zu transformieren bin versucht:Python: Dataframe Transformation Tupeln als Spalten

index apple 
1  [(red,3),(green,2)] 
1  [(red,3)] 
1  [(yellow,9),(red,3)] 
1  [(green,2),(yellow,9)] 
1  [(green,2),(yellow,9), (pink,50)] 
2  [(yellow,14),(red,1)] 
2  [(green,5)] 

in diese:

index apple_red apple_green apple_yellow apple_pink 
1  3   2   9   50 
2  1   5   14   0 

Beachten Sie, dass Tupel pro Index eindeutig sind in der Originaltabelle Irgendeine Idee, wie man das macht?

Dank

+1

SO ist kein Code-Writing Service. Bitte posten Sie, was Sie bisher versucht haben. Auf welche Probleme hast du gestoßen? –

Antwort

1

Sie verwenden können:

von Tupeln erstellt
  • letzten rehape von set_index
    df1 = pd.DataFrame([dict(x) for x in df['apple']], index=df.index) \ 
         .stack() \ 
         .astype(int) \ 
         .reset_index(name='val') \ 
         .drop_duplicates(['level_1','val']) \ 
         .set_index(['index', 'level_1'])['val'] \ 
         .unstack(fill_value=0) \ 
         .add_prefix('apple_') \ 
         .rename_axis(None) \ 
         .rename_axis(None, axis=1) \ 
         .reset_index() 
    print (df1) 
        index apple_green apple_pink apple_red apple_yellow 
    0  1   2   50   3    9 
    1  2   5   0   1   14 
    
  • +0

    Das ist erstaunlich, vielen Dank! – user2475110

    +0

    Froh kann helfen, es war interessantes Problem! – jezrael

    Verwandte Themen