我有一个关于用户及其电影评级的数据框架:
userId movie1 movie2 movie3 movie4 movie5 movie6
0 4.1 NaN 1.0 NaN 2.1 NaN
1 3.1 1.1 3.4 1.4 NaN NaN
2 2.8 NaN 1.7 NaN 3.0 NaN
3 NaN 5.0 NaN 2.3 NaN 2.1
4 NaN NaN NaN NaN NaN NaN
5 2.3 NaN 2.0 4.0 NaN NaN
数据帧中实际上没有userId列,它只是用于索引
从这个数据框中,我尝试创建另一个数据框,该数据框仅包含特定用户已评级的电影。例如,如果我想制作一个仅由用户使用userId == 0
评级的电影的新数据帧,那么输出将是一个具有以下内容的数据帧:
userId movie1 movie3 movie5
0 4.1 1.0 2.1
1 3.1 3.4 NaN
2 2.8 1.7 3.0
3 NaN NaN NaN
4 NaN NaN NaN
5 2.3 2.0 NaN
我知道如何迭代列,但我不知道如何通过检查行值来选择所需的列
您可以使用
.loc
访问器选择特定的userId
,然后使用notna
创建布尔掩码,指定不包含NaN
值的列,最后使用此布尔掩码筛选列:详细信息:
将感兴趣的userId声明并
loc
放入一个新的df
中,只保留相关列然后
pd.concat
将新的df
与其他用户ID一起保存,并保留所选用户ID的列(电影):其中打印:
注意,我已经将
index
设置为您指定的userId
另一种方法:
相关问题 更多 >
编程相关推荐