2016-04-25 2 views
1

У меня есть следующий набор данных:Как создать булеву матрицу индикатора в Питоне

 user artist    sex  country 
0  1 red hot chili peppers f  Germany 
1  1 the black dahlia murder f  Germany 
2  1 goldfrapp    f  Germany 
3  2 dropkick murphys  f  Germany 
4  2 le tigre    f  Germany 
. 
. 
289950 19718 bob dylan   f  Canada 
289951 19718 pixies    f  Canada 
289952 19718 the clash   f  Canada 

Я хочу создать булеву матрицу индикатора с использованием dataframe, где есть одна строка для каждого пользователя и один столбец для каждого художника , Для каждой строки (пользователя), если есть возврат исполнителя 1 else return 0.

Просто отметим, что существует 1004 уникальных художников и 15000 уникальных пользователей - это большой набор данных.

Я создал пустую матрицу, используя следующее:

pd.DataFrame(index=user, columns=artist) 

У меня возникли трудности заполнения dataframe правильно.

ответ

1

Существует метод в панде называется notnull

Пусть ваш dataframe называется DF, вы должны использовать:

df['has_artist'] = df['artist'].notnull() 

Это добавит столбец булевых с именем has_artist к вашему dataframe Если вы хотите вместо этого следует использовать 0 и 1:

df['has_artist'] = df['artist'].notnull().astype(int) 

Вы также можете сохранить его в другой переменной и d не изменяйте ваш фрейм данных.

Смежные вопросы