2017-07-16 2 views
0

Ich filtere einen Datenrahmen basierend auf ein paar Felder und einer davon ist Jahr. Das Jahr ist ein Float 64-Datentyp. Ich bin Filterung, wo Jahr> = 2018 und beschäftigt = Y und Tier = Hoch oder MittelFilter Datenrahmen funktioniert nicht

df = df [(df ['yearLine End Date Year']>=2018) & (df ['Engaged']=='Y') & (df ['Tiering']=='High')|(df ['Tiering']=='Medium')]; 

Die anderen Filter arbeiten mit Ausnahme Jahr und es ist stil mich wieder 2015 geben, 2016 und 2017. Was ich tue falsch?

Adrian

+0

Welche Art ist Ihre Datumsspalte? –

Antwort

2

Sie haben gemischt und die und oder die in Ihrem Filter.

Versuchen Sie folgendes:

df[(df['yearLine End Date Year']>=2018) & (df['Engaged']=='Y') & df['Tiering'].isin(['High','Medium'])] 

oder

df[(df['yearLine End Date Year']>=2018) & (df['Engaged']=='Y') & ((df['Tiering']=='High')|(df['Tiering']=='Medium'))] 

PS achten auf zusätzliche Klammern am Ende ...