escolhendo elementos baseados no complemento de índices em pandas Python
Eu tenho um dataframe do qual eu escolho dois subconjuntos dfs,df_a
edf_b
. Por exemplo emiris
conjunto de dados:
df_a = iris[iris.Name == "Iris-setosa"]
df_b = iris[iris.Name == "Iris-virginica"]
Qual é a melhor maneira de obter todos os elementos deiris
que não estão nem emdf_a
nem emdf_b
? Eu prefiro não me referir às condições originais que definiramdf_a
edf_b
. Eu apenas presumo quedf_a
edf_b
são subconjuntos deiris
, então eu gostaria de retirar elementos deiris
com base nos índices dedf_a
edf_b
. Basicamente, suponha que:
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
# ...
EDITAR: Aqui está uma solução que parece ineficiente e deselegante e tenho certeza que o pandas tem um jeito melhor:
# 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 um segundo:
df_rest = iris.ix[iris.index - df_a.index - df_b.index]
Como isso pode ser feito de forma mais eficiente / elegante em pandas? obrigado.