如何在PYTHON中创建布尔指标矩阵

时间:2016-04-25 12:33:12

标签: python arrays math matrix

我有以下数据集:

        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 个答案:

答案 0 :(得分:4)

pandas中有一个名为notnull

的方法

假设您的数据框名为df,您应该使用:

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

这将向您的数据框添加一个名为has_artist的布尔列 如果你想要0和1代替:

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

您也可以将其存储在不同的变量中,而不是更改数据框。