Skip to main content
 首页 » 编程设计

python之Pandas :按集合中包含的字段过滤

2024年10月01日38tuyile006

我有一个 DataFrame df 和一组 user_ids: set。我如何选择仅包含集合中用户的 df 切片。喜欢:

df[df.user_id in user_ids] 

现在这样工作是因为:

'Series' objects are mutable, thus they cannot be hashed 

请您参考如下方法:

您可以使用 isin对于 bool 掩码 和 boolean indexing用于过滤:

df = pd.DataFrame({'user_id':[1,2,3], 
                   'B':[4,5,6]}) 
 
print (df) 
   B  user_id 
0  4        1 
1  5        2 
2  6        3 
 
user_ids = set([1,2]) 
 
print (df.user_id.isin(user_ids)) 
0     True 
1     True 
2    False 
Name: user_id, dtype: bool 
 
df1 = df[df.user_id.isin(user_ids)] 
print (df1) 
   B  user_id 
0  4        1 
1  5        2