python - Pandas extract data from column -
i have dataframe this
import pandas pd d={'x':[8,5,6,7],    'cord':['(3,0)','(2,0)','(6,0)','(1,0)']} df=pd.dataframe.from_dict(d)   i create df['y'] have first 'cord' value , shift index value.
    cord  x  y 0  (3,0)  8  1     #index 3, first value in (1,0) 1  (2,0)  5  6     #index 2, first value in (6,0) 2  (6,0)  6  nan   #index 6, not exist, nan 3  (1,0)  7  2     #index 1, first value (1,0)      
make separate column, first element of cord
df['cord1'] = df.cord.map( lambda x: x.split(',')[0].split('(')[-1]).map(int) df #    cord  x  cord1 #0  (3,0)  8      3 #1  (2,0)  5      2 #2  (6,0)  6      6 #3  (1,0)  7      1   this might confusing, splits string '(a,b)' twice, first on ',' , , on '('.  finally, casts remaining string ,'a' ,  integer.
now use cord1 column make y column
df['y'] =  df.cord1[ df.cord1.values].values   being careful pass values. drop cord1 column
df.drop( labels='cord1', axis=1, inplace=true)  #df #    cord  x   y #0  (3,0)  8   1 #1  (2,0)  5   6 #2  (6,0)  6 nan #3  (1,0)  7   2      
Comments
Post a Comment