channel_paths['path'] = np.where( channel_paths['conversion'] == 0, ['Start'] + channel_paths['channel'] + ['Null'], ['Start'] + channel_paths['channel'] + ['Conversion'])
I would like to add string Null at the end if conversion is 0 and add conversion column value if conversion value is 1 .
`I have a below error
TypeError: Cannot broadcast np.ndarray with operand of type <class ‘list’>
Advertisement
Answer
If you have dataframe like this:
channel conversion 0 xxx 0 1 yyy 1
Then this will create new “path” column:
df["path"] = np.where( df["conversion"] == 0, df["channel"] + "Null", df["channel"] + df["conversion"].astype(str), ) print(df)
Prints:
channel conversion path 0 xxx 0 xxxNull 1 yyy 1 yyy1
EDIT: To append to a list in column “channel”:
df.apply(lambda x: x['channel'].append('Null') if x['conversion'] == 0 else x['channel'].append(x['conversion']), axis=1) print(df)
Prints:
channel conversion 0 [xxx, Null] 0 1 [yyy, 1] 1