wybieranie elementów opartych na uzupełnieniu indeksów w pandonach Pythona
Mam ramkę danych, z której wybieram dwa podzbiory dfs,df_a
idf_b
. Na przykład wiris
zestaw danych:
df_a = iris[iris.Name == "Iris-setosa"]
df_b = iris[iris.Name == "Iris-virginica"]
Jaki jest najlepszy sposób na uzyskanie wszystkich elementówiris
które nie są wdf_a
ani wdf_b
? Wolę nie odnosić się do pierwotnych warunków, które zdefiniowałemdf_a
idf_b
. Po prostu zakładam todf_a
idf_b
są podzbioramiiris
, więc chciałbym wyciągnąć elementy ziris
na podstawie wskaźnikówdf_a
idf_b
. Zasadniczo załóżmy, że:
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
# ...
EDYTOWAĆ: oto rozwiązanie, które wydaje się nieefektywne i nieeleganckie i jestem pewien, że pandy mają lepszy sposób:
# 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)]
I drugi:
df_rest = iris.ix[iris.index - df_a.index - df_b.index]
jak można to zrobić najbardziej efektywnie / elegancko w pandach? dzięki.