Reputation: 2205
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
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