我有一个数据框,我从中选择两个子集 dfs,df_a
and df_b
。例如在iris
数据集:
df_a = iris[iris.Name == "Iris-setosa"]
df_b = iris[iris.Name == "Iris-virginica"]
获得所有元素的最佳方式是什么iris
既不在df_a
nor in df_b
?我不想提及定义的原始条件df_a
and df_b
。我只是假设df_a
and df_b
是的子集iris
,所以我想从中提取元素iris
基于以下指标df_a
and df_b
。基本上,假设:
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:这是一个看起来效率低下且不优雅的解决方案,我确信 pandas 有更好的方法:
# 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)]
还有第二个:
df_rest = iris.ix[iris.index - df_a.index - df_b.index]
如何在 pandas 中最有效/优雅地完成此操作?谢谢。
这似乎比你的第二个解决方案快一点。索引时会有更多的开销.ix
:
df[~df.index.isin(df_a.index+df_b.index)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)