Try: # Create an example dataframe df = pd.DataFrame({"genres":["Fantasy|Sci-Fi", "Action|Adventure|Fantasy", "Thriller", "Action|Adventure|Thriller|bbv","Action","Action|Adventure|thriller"]}) # Get a dataframe with as many columns as there are genres df = df.genres.str.get_dummies(sep = "|") # Get the genres as values df = df.multiply(df.columns) # Rename the columns to have the genre id df.columns = ["genre_" + str(x) for x in range(len(df.columns))] **Input**: [![enter image description here][1]][1] **Output**: [![enter image description here][2]][2] [1]: https://i.sstatic.net/6mqdB.png [2]: https://i.sstatic.net/7q4OW.png