У меня есть dataframe pandas, содержащий индексы, которые имеют отношения «один ко многим». Очень упрощенный и сокращенный пример моих данных показан в ссылке DataFrame Example. Я хочу, чтобы получить список или серии или ndarray уникальных значений namIdx, в которых nCldLayers < = 1. Конечный результат должен показать индексы 601 и 603.Фильтрация синтаксиса для pandas dataframe groupby с логическим условием
я в состоянии сделать это с 3 заявления ниже, но мне интересно, есть ли намного лучший, более сжатый способ, возможно, с помощью «фильтра», «выбрать» или «где».
grouped=(namToViirs['nCldLayers']<=1).groupby(namToViirs.index).all(axis=0) grouped = grouped[grouped==True] filterIndex = grouped.index
Есть ли лучший подход в достижении этого результата, применяя логическое условие (namToViirs [ 'nCldLayers> = 1) в последующей части цепи, то есть, первая группа затем применить логическое условие, а затем получить только namIdx, где логический результат верен для каждого члена группы?
Не уверен, что ваш второй вопрос, но ваш первый, что о 'Set ((namToViirs [«nCldLayers» ] <= 1) .index) '? – dmn