我有一个如下所示的数据帧:
userId movie1 movie2 movie3 movie4 score
0 4.1 2.1 1.0 NaN 2
1 3.1 1.1 3.4 1.4 1
2 2.8 NaN 1.7 NaN 3
3 NaN 5.0 NaN 2.3 4
4 NaN NaN NaN NaN 1
5 2.3 NaN 2.0 4.0 1
我想从每部电影中减去电影分数,因此输出如下:
userId movie1 movie2 movie3 movie4 score
0 2.1 0.1 -1.0 NaN 2
1 2.1 0.1 2.4 0.4 1
2 -0.2 NaN -2.3 NaN 3
3 NaN 1.0 NaN -1.7 4
4 NaN NaN NaN NaN 1
5 1.3 NaN 1.0 3.0 1
实际的数据帧有数千部电影,这些电影都是按名称引用的,所以我试图找到一个解决方案来满足这一要求
我还应该提到的是,电影不是按[“电影1”、“电影2”、“电影3]的顺序排列的,而是按片名排列的,如[《星球大战》《哈利波特》《指环王》]。数据集可以更改,因此我不知道列表中的最后一部电影是什么。
您可以使用NumPy广播在此处进行减法
如果您不知道列名,请在此处使用^{}
现在,用
cols
替换'movie1':'movie4'
可能的解决方案
它应该返回
使用^{} 标识
movie
列,然后subtract
从score
数组中标识这些列:编辑:当电影列名是随机的时。选择除
'userId', 'score'
:相关问题 更多 >
编程相关推荐