Amit
Amit

Reputation: 793

how to group a string in a column in python?

i have a dataframe

   PROD  TYPE  QUANTI  
0  wood    i2      20     
1    tv    ut1      30    
2  tabl    il3      50    
3   rmt    z1      40     
4   zet    u1      60   
5    rm    t1      60      
6    rt    t2      80    
7   dud    i4      40  

I want to group the column "TYPE" in-group categories of (i,u,z,y...etc)

Expected Output

   PROD      TYPE    QUANTI  
0  wood    i_group      20     
1    tv    ut_group      30    
2  tabl    il_group      50    
3   rmt    z_group      40     
4   zet    y_group      60   
5    rm    t_group      60      
6    rt    t_group      80    
7   dud    i_group      40  

Upvotes: 0

Views: 47

Answers (1)

jezrael
jezrael

Reputation: 862751

Use Series.replace for replace number to _group:

df['TYPE'] = df['TYPE'].replace('\d+', '_group', regex=True) 
print (df)
   PROD      TYPE  QUANTI
0  wood   i_group      20
1    tv  ut_group      30
2  tabl  il_group      50
3   rmt   z_group      40
4   zet   u_group      60
5    rm   t_group      60
6    rt   t_group      80
7   dud   i_group      40

If possible some values with no number use:

df['TYPE'] = df['TYPE'].replace('\d+', '', regex=True) + '_group'

Upvotes: 1

Related Questions