我有以下代码:
if 0 in df[RATING_COL]:
rating_col_list = df[RATING_COL].to_list()
assert 0 in rating_col_list
该Assert正在触发AssertionError
。这怎么可能呢?为什么列中有一个0,但当我将列转换为列表时,0消失了?
我正在加载的dataframe基于MovieLens-1 M,看起来像:
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,661004,10
表示用户1对项目661的评分为4。)
(Also,我已经检查了CTRL-F:评级栏中没有0评级。)
2条答案
按热度按时间bqucvtff1#
0 in df[RATING_COL]
在index中搜索,要在Series中搜索values用途:w6lpcovy2#
因为
0
是系列df[RATING_COL]
的索引。这就像当检查一个键是否在字典中时,
O in d
将检查0
是否是d
的键之一。