我有一个包含多个列的pandas数据框,我想对它进行筛选,以获得与不同列中的某些值匹配的子集。我使用了isin()
方法并传递了一个字典,但是我不断地得到带有消息TypeError
的TypeError: only list-like or dict-like objects are allowed to be passed to DataFrame.isin(), you passed a 'str'
。
以下是该问题的一个示例:
x = pd.DataFrame({'surname':['wang','park','park'],'name':['tim','john','sam']})
display(x)
filt_dict = {'surname':'park'}
x[x.isin(filt_dict)]
我希望有两行
surname
匹配park
,但我得到的是TypeError
。给什么?
最佳答案
当需要按dict值筛选时:
In [118]: x[x.surname.isin(filt_dict.values())]
Out[118]:
surname name
1 park john
2 park sam