SpanishBoy
SpanishBoy

Reputation: 2205

Concat values from columns depends on particular condition

I have a following dataframe:

# EPISODE PROGRAM  TITLE IS_EPIS  IS_MOVIE IS_SHOW    
1 E_N1    P_N1      T1      1        0         0
2 E_N2    P_N2      T2      0        0         1
3 E_N3    P_N3      T3      0        1         0

I am trying to get new column as:

# EPISODE PROGRAM  TITLE IS_EPIS  IS_MOVIE IS_SHOW  TITLE  EPISODE_TITLE
1 E_N1    P_N1       T1     1        0         0      NA        E_N1
2 E_N2    P_N2       T2     0        0         1      T2         NA        
3 E_N3    P_N3       T3     0        1         0      P_N3       NA

by means of:

df['episode_title'] = df[(df.IS_EPIS == 1)].episode #GOOD

df['title'] = df[(df.IS_MOVIE == 1)].program | df[(df.IS_SHOW == 1)].title #FAIL

Upvotes: 1

Views: 41

Answers (1)

jezrael
jezrael

Reputation: 862511

You can use loc:

df.loc[df.IS_MOVIE == 1 ,'title'] = df.PROGRAM
df.loc[df.IS_SHOW == 1, 'title'] = df.TITLE
df.loc[df.IS_EPIS == 1, 'episode_title'] = df.EPISODE
print df
  EPISODE PROGRAM TITLE  IS_EPIS  IS_MOVIE  IS_SHOW title episode_title
#                                                                      
1    E_N1    P_N1    T1        1         0        0   NaN          E_N1
2    E_N2    P_N2    T2        0         0        1    T2           NaN
3    E_N3    P_N3    T3        0         1        0  P_N3           NaN

Upvotes: 2

Related Questions