Pandas 从多个列中筛选值

Pandas 从多个列中筛选值,pandas,filter,multiple-columns,Pandas,Filter,Multiple Columns,我想找到具有不同产品的id。 这里,答案是id-1、2和4,因为它有不同的prod。 答案不是ID3,因为ID3有类似的产品 如何用Python编写程序来过滤结果 id prod 0 1 a 1 1 l 2 2 l 3 2 a 4 3 a 5 3 a 6 3 a 7 4 l 8 4 a IIUC,您可以使用: df.loc[~df.duplicated(['id','prod'],keep=Fals

我想找到具有不同产品的id。 这里,答案是id-1、2和4,因为它有不同的prod。 答案不是ID3,因为ID3有类似的产品

如何用Python编写程序来过滤结果

   id prod
0   1    a
1   1    l
2   2    l
3   2    a
4   3    a
5   3    a
6   3    a
7   4    l
8   4    a
IIUC,您可以使用:

df.loc[~df.duplicated(['id','prod'],keep=False),'id']
#or df.drop_duplicates(keep=False)['id']

0    1
1    1
2    2
3    2
7    4
8    4

请在您的帖子中以文本格式发布您的样本,并附上代码标签。不建议将其作为图像发布。++ve是一个很好的解决方案。您能帮助我吗?我正在尝试df.groupby('id')['prod']].nunique()=1但问题是,对于组中只有1项的元素,它将失败,我如何将该条件放入其中。如果您能在这里指导我,我将不胜感激。@RavinderSingh13关于
df.groupby('id')['prod'].apply(lambda x:x.nunique()==len(x))
?非常感谢您让我知道,当我运行您建议的代码时,我会遇到类似
TypeError:'Series'对象无法调用的错误。
关于它的任何想法,我正在学习,抱歉,如果这里遗漏了什么。很抱歉,我仍然收到一个错误
TypeError:“Series”对象不可调用
no我没有在这里更改任何df的值。我会试着把这个问题发一次。非常感谢你的帮助:)@RavinderSingh13对我来说很好(当然可以,没问题。:)