python - how to split column of tuples in pandas dataframe? -


i have pandas dataframe (this little piece)

>>> d1    y norm test  y norm train  len(y_train)  len(y_test)  \ 0    64.904368    116.151232          1645          549    1    70.852681    112.639876          1645          549                                         svr rbf  \ 0   (35.652207342877873, 22.95533537448393)    1  (39.563683797747622, 27.382483096332511)                                             lcv  \ 0  (19.365430594452338, 13.880062435173587)    1  (19.099614489458364, 14.018867136617146)                                        ridge cv  \ 0  (4.2907610988480362, 12.416745648065584)    1    (4.18864306788194, 12.980833914392477)                                              rf  \ 0   (9.9484841581029428, 16.46902345373697)    1  (10.139848213735391, 16.282141345406522)                                                gb  \ 0  (0.012816232716538605, 15.950164822266007)    1  (0.012814519804493328, 15.305745202851712)                                                  et data   0  (0.00034337162272515505, 16.284800366214057)  j2m   1  (0.00024811554516431878, 15.556506191784194)  j2m   >>>  

i want split columns contain tuples. example want replace column lcv columns lcv-a , lcv-b .

how can that?

edit:

the proposed solution not work why??

>>> d1['lcv'].apply(pd.series)                                           0 0  (19.365430594452338, 13.880062435173587) 1  (19.099614489458364, 14.018867136617146) >>>  

edit: seems working

>>> d1['lcv'].apply(eval).apply(pd.series)            0          1 0  19.365431  13.880062 1  19.099614  14.018867 >>>  

you can apply(pd.series) on column:

in [13]: df = pd.dataframe({'a':[1,2], 'b':[(1,2), (3,4)]})  in [14]: df out[14]:          b 0  1  (1, 2) 1  2  (3, 4)  in [16]: df['b'].apply(pd.series) out[16]:    0  1 0  1  2 1  3  4  in [17]: df[['b1', 'b2']] = df['b'].apply(pd.series)  in [18]: df out[18]:          b  b1  b2 0  1  (1, 2)   1   2 1  2  (3, 4)   3   4 

this works because makes of each tuple series, seen row of dataframe.


Popular posts from this blog