Viele Pandas-Vorgänge können durch Operatorverkettung ausgeführt werden, einschließlich Gruppieren, Aggregieren und Anwenden. Das Filtern von Zeilen erfolgt jedoch normalerweise mithilfe der herkömmlichen Klammerindizierung.
df_filtered = df[df['column'] == value]
Dieser Ansatz erfordert die Zuweisung von df zu einer Variablen vor dem Filtern, was umständlich sein kann. Gibt es eine bequemere Möglichkeit, Filtervorgänge zu verketten?
Antwort:
Während die letzte Codezeile in der Frage unklar ist, kann eine „verkettete“ Filterung möglich sein Dies wird durch die Verkettung von Kriterien im booleschen Index erreicht.
df[(df.A == 1) & (df.D == 6)]
Zusätzlich können Benutzer ihre eigene Maskenmethode definieren und diese zum Filtern verwenden:
def mask(df, key, value): return df[df[key] == value] pandas.DataFrame.mask = mask df = pandas.DataFrame(np.random.randint(0, 10, (4,4)), index=list('abcd'), columns=list('ABCD')) df.mask('A', 1) df.mask('A', 1).mask('D', 6)
Dies ermöglicht eine bequeme Verkettung von Filteroperationen .
Das obige ist der detaillierte Inhalt vonKann Operatorverkettung zum Filtern von DataFrame-Zeilen in Pandas verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!