Filtern des Pandas-Datenrahmens mit mehreren booleschen Spalten

9

Ich versuche, ein df mit mehreren booleschen Variablen zu filtern, die ein Teil des df sind, aber nicht dazu in der Lage waren.

Beispieldaten:

%Vor%

Der dtype für die Spalten C und D ist Boolean. Ich möchte ein neues df (df1) mit nur den Zeilen erstellen, in denen entweder C oder D True ist. Es sollte so aussehen:

%Vor%

Ich habe so etwas versucht, was Probleme bereitet, weil es den booleschen Typ nicht handhaben kann:

%Vor%

Irgendwelche Ideen?

    
Maya Harary 13.09.2017, 22:06
quelle

4 Antworten

13
%Vor%

Lösung 1:

%Vor%

Lösung 2:

%Vor%

Lösung 3:

%Vor%

PS Wenn Sie Ihre Lösung ändern zu:

%Vor%

es wird auch funktionieren

Pandas docs - boolesche Indizierung

    
MaxU 13.09.2017, 22:07
quelle
4

Oder

%Vor%     
Wen 13.09.2017 22:45
quelle
3

Option 1
np.where

%Vor%

Option 2
pd.Series.where auf df.index

%Vor%

Option 3a
df.select_dtypes

%Vor%

Option 3b
np.blocks (pd Versionen & lt; 0.20 - wird bald veraltet sein)

%Vor%

Option 4
Missbrauch von np.select

%Vor%     
cᴏʟᴅsᴘᴇᴇᴅ 14.09.2017 00:39
quelle
-1

Du könntest das leicht ausprobieren:

%Vor%

Hinweis:

  1. Der logische Operator or muss durch bitweises | ersetzt werden Betreiber.
  2. Stellen Sie sicher, dass () zum Umschließen der einzelnen Operanden verwendet wird.
samuelv 24.02.2018 20:42
quelle