Используя get_dummies (), но он не работает с массивом - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь кодировать столбец в наборе данных, используя Pandas get_dummies, но он возвращает 0, поскольку не фильтрует каждое ключевое слово в массиве в столбце.

import pandas as pd
import numpy as np

# Load Movies Metadata
metadata = pd.read_csv('moviesNew1.csv', low_memory=False)
print(metadata.info())
cat_columns = ['genres']

df_processed = pd.get_dummies(metadata, 
    prefix_sep="__",columns=cat_columns)

print(df_processed.head(10))

Следует добавить 1 к типам фильмов для правильного фильма и 0 для несоответствия.

1 Ответ

0 голосов
/ 06 мая 2019

ДВУХШАГОВОЕ РЕШЕНИЕ:

Вы должны вставить свой столбец, чтобы преобразовать его в аргумент данных. Мои данные:

   score    genres
0      1    crime
1      2  romance
2      1   horror
3      4    crime
df_processed = pd.get_dummies(metadata['genres'])

Result:

   crime  horror  romance
0      1       0        0
1      0       0        1
2      0       1        0
3      1       0        0

Теперь мы получили наши манекены. Но чтобы вернуть их в исходный фрейм данных с другими функциями, я делаю:

df_concat = pd.concat([df_processed, metadata], axis=1)

Result:

   score    genre  crime  horror  romance
0      1    crimi      1       0        0
1      2  romance      0       0        1
2      1   horror      0       1        0
3      4    crimi      1       0        0

РЕШЕНИЕ ОДНОГО ШАГА:

Следующее решение будет выполнять вышеуказанные шаги за один раз. Поэтому, если вас не интересуют фиктивные переменные в отдельном DF, сделайте следующее:

df_processed = pd.get_dummies(metadata, columns=['genre'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...