Если я правильно понимаю, вы хотите сделать две вещи:
- найти минимальное значение B
для каждого отдельного A
и
- убедитесь, что они не сталкиваются. Вы не указали, что делать в случае столкновения, поэтому я предполагаю, что вы просто хотите узнать, есть ли такой.
Первое можно получить с помощью ответа Рарблэка (хотя вы должны использовать min
, а не max
в вашем случае).
Во-вторых, вы можете использовать метод .nunique()
- посмотреть, сколько существует уникальных B
значений (должно совпадать с числом уникальных A
valuse)
#setup dataframe
df = pd.DataFrame.from_dict({
'A': [1,1,1,2,2,2,3,3,3],
'B': [0.1,0.2,0.3,0.2,0.5,0.3,0.8,0.6,0.1]
})
# find minimum
x = df.groupby('A')['B'].min()
# assert that there are no collisions:
if not (x.nunique() == len(x)):
print ("Conflicting values")