Фильтрация логических значений в pandas

#python #pandas

#python #pandas

Вопрос:

Я пытаюсь отфильтровать только столбцы с истинными значениями из этого набора данных:

 Name Surname Age New_Joiner
Greta G.     56    False
Tim   H.     24    True
Rita  F.     46    False
Sara  S.     34    True
...
  

Мой ожидаемый результат был бы

 Name Surname Age New_Joiner
Tim   H.     24    True
Sara  S.     34    True
...
  

Я попытался добавить это условие выбора в очень маленькую функцию (вероятно, это не имеет большого смысла):

 def filt(file):
    file[['New_Joiner']]
    return file
  

Но когда я вызываю это

 sel=filt(df)
  

Я получил не только истинные значения, но и False.
Я проверил тип столбца New_Joiner с помощью dtype, и он является логическим.

Комментарии:

1. Как насчет df[df[‘New_Joiner’]] . (Просто навскидку; не тестировал.

2. Огромное спасибо всем вам

Ответ №1:

Измените свою функцию на

 def filt(file):
    file = file[file['New_Joiner']]
    return file
  

Комментарии:

1. Большое спасибо за вашу помощь

Ответ №2:

Вам не нужно выполнять два шага, просто

 sel = file[file['New_Joiner']]
  

Ответ №3:

Расширяю свой комментарий теперь, когда я протестировал. Вы можете пропустить все функции вместе и использовать:

 df[df['New_Joiner']]
  

Это вернет только True значения, поскольку это логическая маска.