当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()
我有一个包含用户 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()