Я настоятельно рекомендую вам создавать манекены из столбца, так как это наилучшая практика при решении такой проблемы, как эта.Очень полезная функция - pandas's get_dummies () .
. Чтобы избежать этого метода, вы можете альтернативно создать фактор из уникальных жанров в столбцах, используя pandas's factorize () :
# Import libraries
import pandas as pd
import numpy as np
# Create dataframe with genres
df = pd.DataFrame(np.array(
[["Pop;Rock;HipHop"],
["Rock;HipHop"],
["Country;HipHop"],
["Pop"],
["Pop;Rock;HipHop"],
["Pop"]]), columns = ["genre"])
# Factorize the genre column (i.e., assign a value to each unique combination)
labels, uniques = pd.factorize(df["genre"], sort=True)
# Print the numerical representation of each unique combination
print(labels)
Вывод: [0 1 2 3 0 3]
Обратите внимание, что для правильной работы этого метода может потребоваться сначала отсортировать каждый из разделенных точкой с запятой жанров.