создать новый столбец с данными в столбце - PullRequest
0 голосов
/ 07 ноября 2018

Так вот мои данные в пандах

      Movie        Tags
0  War film  tank;plane
1  Spy film   car;plane

Я хотел бы создать новый столбец с тегом столбца с 0 и 1 и добавить префикс типа 'T_' к имени столбца.

Как:

      Movie        Tags T_tank T_plane T_car
0  War film  tank;plane      1       1     0
1  Spy film   car;plane      0       1     1

У меня есть несколько идей о том, как сделать это, например, построчно с разделением (";") и df.loc [:, 'T_plane'], например. Но я думаю, что это не самый оптимальный способ сделать это.

Привет

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Использование библиотеки sklearn:

from sklearn.preprocessing import MultiLabelBinarizer

mlb = MultiLabelBinarizer()

res = df.join(pd.DataFrame(mlb.fit_transform(df['Tags'].str.split(';')),
                           columns=mlb.classes_).add_prefix('T_'))

print(res)

      Movie        Tags  T_car  T_plane  T_tank
0  War film  tank;plane      0        1       1
1  Spy film   car;plane      1        1       0
0 голосов
/ 07 ноября 2018

С .str.get_dummies

df.join(df.Tags.str.get_dummies(';').add_prefix('T_'))

      Movie        Tags  T_car  T_plane  T_tank
0  War film  tank;plane      0        1       1
1  Spy film   car;plane      1        1       0
...