2
我有一个DataFrame df和一组user_ids:set。我如何选择只包含集合中用户的df。像:熊猫:根据字段中包含的字段进行过滤
df[df.user_id in user_ids]
现在的工作,那是因为:
'Series' objects are mutable, thus they cannot be hashed
我有一个DataFrame df和一组user_ids:set。我如何选择只包含集合中用户的df。像:熊猫:根据字段中包含的字段进行过滤
df[df.user_id in user_ids]
现在的工作,那是因为:
'Series' objects are mutable, thus they cannot be hashed
可以使用isin
为boolean mask
与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
伙计。这是关于SO的第一个“isin”问题的可能性有多大? ;-) – DSM
'DF [df.user_id.isin(user_ids) ]'? – MaxU