I want to split "rest" column to new columns by comma and drop "R=". And also add +1 to "joints" column. How can i do?
df
joints rest
0 R=0,0,1,1,1,1
3 R=0,0,1,1,1,1
42 R=0,0,1,1,1,1
45 R=0,0,1,1,1,1
I want to do like this:
joints U1 U2 U3 R1 R2 R3
1 0 0 1 1 1 1
4 0 0 1 1 1 1
43 0 0 1 1 1 1
46 0 0 1 1 1 1
For more dynamic rename columns names is used function with lambda, for new columns is used Series.str.split
with expand=True
and assign back to original by DataFrame.join
:
f = lambda x: f'U{x+1}' if x < 3 else f'R{x-2}'
df1 = (df.join(df.pop('rest').str.split('=')
.str[1]
.str.split(',', expand=True)
.rename(columns=f))
.assign(joints = df['joints'] + 1))
print (df1)
joints U1 U2 U3 R1 R2 R3
0 1 0 0 1 1 1 1
1 4 0 0 1 1 1 1
2 43 0 0 1 1 1 1
3 46 0 0 1 1 1 1