我有以下代码:
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,661004,10
表示用户 1 对项目 661 进行了评分 4。)
(另外,我已经用CTRL-F检查过:评级栏中没有0评级。)
因为
0
是系列df[RATING_COL]
的索引。
RATING_COL = "rating"
print(df[RATING_COL]
0 2 # <-- index 0
1 3
2 4
3 5
4 6
5 7
6 8
7 9
8 10
9 6
10 7
11 8
12 9
13 10
14 9
15 8
16 7
17 6
Name: rating, dtype: int64
就像检查某个键是否在字典中一样,
O in d
将检查0
是否是d
的键之一。