Ho un dataframe dal quale seleziono due sottoinsieme dfs, df_a
e df_b
. Per esempio in iris
set di dati:selezionare elementi basati sul complemento degli indici nei panda Python
df_a = iris[iris.Name == "Iris-setosa"]
df_b = iris[iris.Name == "Iris-virginica"]
Qual è il modo migliore per ottenere tutti gli elementi di iris
che non sono né in df_a
né df_b
? Preferisco non fare riferimento alle condizioni originali che hanno definito df_a
e df_b
. Immagino solo che df_a
e df_b
siano sottoinsiemi di iris
, quindi mi piacerebbe estrarre elementi da iris
in base agli indici di df_a
e df_b
. In sostanza, si supponga che:
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
# ...
EDIT: ecco una soluzione che sembra inefficiente e poco elegante e sono sicuro che i panda ha un modo migliore:
# 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)]
E un secondo:
df_rest = iris.ix[iris.index - df_a.index - df_b.index]
come può essere fatto in modo più efficiente/elegante nei panda? Grazie.