我有以下数据集:
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)
我无法正确填充数据框。
答案 0 :(得分:4)
pandas中有一个名为notnull
假设您的数据框名为df,您应该使用:
df['has_artist'] = df['artist'].notnull()
这将向您的数据框添加一个名为has_artist
的布尔列
如果你想要0和1代替:
df['has_artist'] = df['artist'].notnull().astype(int)
您也可以将其存储在不同的变量中,而不是更改数据框。