Tôi có một khung dữ liệu mà tôi chọn hai tập hợp con dfs, df_a
và df_b
. Ví dụ trong iris
bộ dữ liệu:chọn ra các yếu tố dựa trên việc bổ sung các chỉ số trong các chú gấu trúc Python
df_a = iris[iris.Name == "Iris-setosa"]
df_b = iris[iris.Name == "Iris-virginica"]
cách tốt nhất để có được tất cả các yếu tố của iris
nhưng không phải là trong df_a
cũng không phải trong df_b
là gì? Tôi không muốn tham khảo các điều kiện ban đầu đã xác định df_a
và df_b
. Tôi chỉ giả định rằng df_a
và df_b
là các tập hợp con của iris
, vì vậy, tôi muốn lấy các phần tử ra khỏi iris
dựa trên các chỉ số của df_a
và df_b
. Về cơ bản, giả sử rằng:
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: đây là một giải pháp mà dường như không hiệu quả và không thanh nha và tôi chắc chắn rằng gấu trúc có một cách tốt hơn:
# 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)]
Và một giây một:
df_rest = iris.ix[iris.index - df_a.index - df_b.index]
Làm thế nào điều này có thể được thực hiện hiệu quả nhất/thanh lịch trong gấu trúc? cảm ơn.