Ich habe einen Pandas-DataFrame mit 4 Spalten und möchte einen neuen DataFrame erstellen , der nur drei Spalten enthält. Diese Frage ähnelt: Extrahieren bestimmter Spalten aus einem Datenrahmen, jedoch für Pandas nicht R. Der folgende Code funktioniert nicht, löst einen Fehler aus und ist sicherlich nicht die pandasnische Methode, dies zu tun.
import pandas as pd
old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]})
new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can't be an iterator
Was ist der pandasnische Weg, um es zu tun?
quelle
old[['A']].copy()
werden die doppelten eckigen Klammern benötigt, um einen neuen Datenrahmen zu erstellen. Beachten Sie, dassold['A'].copy()
nur eine Serie erstellt wird.Der einfachste Weg ist
.
quelle
Ein anderer einfacherer Weg scheint zu sein:
wo
old.column_name
wird dir eine serie geben. Erstellen Sie eine Liste aller Spaltenreihen, die Sie beibehalten möchten, und übergeben Sie sie an den DataFrame-Konstruktor. Wir müssen eine Transponierung durchführen, um die Form anzupassen.quelle
Generische Funktionsform
Speziell für Ihr Problem oben
quelle
Wenn Sie einen neuen Datenrahmen haben möchten, dann:
quelle
Soweit ich das beurteilen kann, müssen Sie bei Verwendung der Filterfunktion nicht unbedingt die Achse angeben.
gibt den gleichen Datenrahmen zurück wie
quelle
Spalten nach Index:
quelle