2016-04-25 88 views
1

我有以下數據集:如何在Python中創建布爾指標矩陣

 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 

我想用一個數據幀,其中對於每個用戶每個藝術家一行和一列創建一個布爾指標矩陣。對於每行(用戶),如果有藝術家返回1,則返回0.

只需提及,就有1004位獨特藝術家和15000個獨特用戶 - 這是一個大型數據集。

我已經使用以下方法創建一個空的矩陣:

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

我有困難正確填充數據幀。

回答

1

有一個叫notnull

假設你的數據框被命名爲DF在大熊貓的方法,你應該使用:

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

這將命名爲has_artist布爾值的列添加到您的數據幀 如果你想使0和1代替:

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

您也可以將它存儲在不同的變量中d不會改變你的數據框。