我有以下代码:
if 0 in df[RATING_COL]:
rating_col_list = df[RATING_COL].to_list()
assert 0 in rating_col_list
断言正在触发一个AssertionError
. 这怎么可能?为什么列中有一个 0,但是当我将列转换为列表时,0 消失了?
我正在加载的数据帧基于 MovieLens-1M,如下所示:
user_id,item_id,rating
1,1193000,2
1,1193001,3
1,1193002,4
1,1193003,5
1,1193004,6
1,1193005,7
1,1193006,8
1,1193007,9
1,1193008,10
1,661000,6
1,661001,7
1,661002,8
1,661003,9
1,661004,10
1,661005,9
1,661006,8
1,661007,7
1,661008,6
在此格式中,1,1193008,10
表示用户 1 对项目 1193 的评分为 8。10 表示这是评分,以 1193 开头的所有其他项目的评分将低于 10。(因此表示用户 1 对项目 661 的评分为 8)1,661004,10
。 4.)
(另外,我已经用 CTRL-F 检查过:评级栏中没有 0 评级。)
因为
0
是Series的一个索引df[RATING_COL]
。这就像检查某个键是否在字典中时,
O in d
将检查是否0
是 的键之一d
。0 in df[RATING_COL]
在索引中搜索,要在系列值中搜索,请使用: