Pandas 从多个列中筛选值
我想找到具有不同产品的id。 这里,答案是id-1、2和4,因为它有不同的prod。 答案不是ID3,因为ID3有类似的产品 如何用Python编写程序来过滤结果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 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对我来说很好(当然可以,没问题。:)