我有一个列表和pandas数据帧数据,如下所示:
user_id = [10, 15, 20, 25, 30, 32, 40, 45, 50]
user_id value
10 45
20 49
25 19'
30 58
32 48
我试图在列表中找不到user_id列表。 我想要的结果是
result = [15, 40, 45, 50]
获得理想结果的最简单方法是什么? (目前我通过for循环得到了结果)
谢谢。
答案 0 :(得分:3)
使用设定操作:
list(set(user_id)-set(df.user_id))
Out[84]: [40, 50, 45, 15]
答案 1 :(得分:2)
答案 2 :(得分:1)
您只需将user_id列更改为列表,然后使用list comprehension查找原始列表中不在其他列表中的列表。
user_id = [10, 15, 20, 25, 30, 32, 40, 45, 50]
df = pd.DataFrame({'user_id': [10, 20, 25, 30, 32], 'value': [45, 49, 19, 58, 48]}
df_user_id = df['user_id'].tolist()
result = [x for x in user_id if x not in df_user_id]
[15, 40, 45, 50]