Auswählen von Elementen basierend auf der Indexergänzung in Python-Pandas
Ich habe einen Datenrahmen, aus dem ich zwei Teilmengen-DFS auswähle.df_a
unddf_b
. Zum Beispiel iniris
Datensatz:
df_a = iris[iris.Name == "Iris-setosa"]
df_b = iris[iris.Name == "Iris-virginica"]
Was ist der beste Weg, um alle Elemente von zu bekommeniris
das sind weder indf_a
noch indf_b
? Ich beziehe mich lieber nicht auf die ursprünglichen Bedingungen, die definiert wurdendf_a
unddf_b
. Das nehme ich einfach andf_a
unddf_b
sind Teilmengen voniris
Ich möchte also Elemente herauszieheniris
basierend auf den Indizes vondf_a
unddf_b
. Grundsätzlich sei angenommen, dass:
df_a = get_a_subset(iris)
df_b = get_b_subset(iris)
# retrieve the subset of iris that
# has all elements not in df_a or in df_b
# ...
BEARBEITEN: Hier ist eine Lösung, die ineffizient und inelegant scheint und ich bin sicher, Pandas hat einen besseren Weg:
# get subset of iris that is not in a nor in b
df_rest = iris[map(lambda x: (x not in df_a.index) & (x not in df_b.index), iris.index)]
Und noch eine zweite:
df_rest = iris.ix[iris.index - df_a.index - df_b.index]
wie geht das am effizientesten / elegantesten bei pandas? Vielen Dank.