我有一个包含多个列的pandas数据框,我想对它进行筛选,以获得与不同列中的某些值匹配的子集。我使用了isin()方法并传递了一个字典,但是我不断地得到带有消息TypeErrorTypeError: 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

08-20 02:14