I've recreated your table with the following code
df_meta_review1 = pd.DataFrame([('a101',['pc', 'game']),('a1001', ['mobile', 'game', 'education'])], columns = ['userID', 'categories'])
Running the first piece of code gives no error. Are you sure you get an error when its run? Below is the resultant table.
userID categories category_domain
0 a101 [pc, game] ['pc', 'game']
1 a1001 [mobile, game, education] ['mobile', 'game', 'education']
If I run the second line, I also get an error. Like so:
TypeError: 'DataFrame' object is not callable
To fix this I remove the round parenthesis from after the data frame name, as the error suggests you we are trying to use the data frame as a function (this is what callable means)
df_meta_review1['category_domain'] = df_meta_review1['categories'].apply(','.join)
This no longer generates an error and the output looks like:
userID categories category_domain
0 a101 [pc, game] pc,game
1 a1001 [mobile, game, education] mobile,game,education
Which, I think is what you are looking for.
For the third line of code I get the error:
TypeError: 'DataFrame' object is not callable
Again, dropping the round parenthesis from after the data frame name, yields code that executes without error.
df_meta_review1['category_domain'] = ",".join(map(str, df_meta_review1['categories']))
However I don't think it is what you are looking for.
userID categories category_domain
0 a101 [pc, game] ['pc', 'game'],['mobile', 'game', 'education']
1 a1001 [mobile, game, education] ['pc', 'game'],['mobile', 'game', 'education']