当a列等于数据框中的某个值时如何找到b列python

How to find column b when column a equals a certain value in data frames python

我有一个包含用户 ID、电影 ID 和评分的 csv,我想 return 某些用户 ID 的所有电影 ID。这是数据的样子

 userId  movieId  rating   timestamp
    1        1     4.0   964982703
    1        3     4.0   964981247
    1        6     4.0   964982224
    1       47     5.0   964983815
    1       50     5.0   964982931

例如,我想 return 用户 ID 1 的所有电影,并将它们存储在某种结构中,例如列表。输出将是 [1,3,6,47,50, … ].

我尝试使用此代码来打印输出

for x in ratings["userId"]:
    for y in ratings["movieId"]:
        if x == 1:
            print(y)

但我的输出会一直打印并强制 vs code 关闭。

假设userId是一个字符串列,你可以运行:

print(ratings.query("userId == '1'")["movieId"])

否则,如果是整数列,可以运行:

print(ratings.query("userId == 1")["movieId"])

你应该在同一行循环:

for x in zip(ratings["userId"], ratings["movieId"]):
    if x == 1:
        print(y)

或者

res = ratings.loc[ratings["userId"].eq(1),"movieId"].tolist()