Рассмотрим следующее.
import pandas as pd
d=pd.DataFrame([[1,'a'],[1,'b'],[2,'c'],[2,'a'],[3,'c'],[4,'a'],[4,'c']],columns=['A','B'])
Я хочу те значения в A, которые ТОЛЬКО связаны с 'c' ('c' и только с '). Существует только одна такая ценность. Это 3. Я написал следующий запрос, но он не возвращает правильный результат.
d[ d.B.isin(['c']) & ~d.A.isin(d[d.B.isin(set(d.B.unique())-{'c'})].A.to_frame()) ].A.to_frame()
Моя идея состоит в том, чтобы найти все значения в A, с которыми связана 'c', а затем удалить из них те значения, с которыми также связано что-то отличное от 'c'. Но то, что код возвращает, это просто значения, с которыми связан 'c'. Может кто-то помочь мне с этим? Спасибо.