首页 > 解决方案 > 如何获取未与另一个数据框相交的数据框的其余部分?

问题描述

我有三个数据框:

df_total
df1
df2

在哪里

df2 = pd.merge(df_total, df1[[Portfolio, Value]], on=Portfolio, how = inner)

我合并df_totaldf1Portfolio列的值相同时。这导致df2.

我怎样才能得到一个df3=代表其余部分df_total不包括在交叉点中的df2

标签: pythonpandasdataframe

解决方案


我找到了答案:

df2 = pd.merge(df_total, df1, how='outer', indicator=True)

这将返回一个数据框,如:

      col1  col2   col3     _merge
0    ...     ...    ...   left_only
1    ...     ...    ...        both
2    ...     ...    ...  right_only

而且因为我只对“df3 = 表示未包含在交集 df2 中的 df_total 的其余部分”感兴趣

df2 = df2[df2['_merge'] == "both"].drop('_merge', 1)
df3 = df2[df2['_merge'] == "left_only"].drop('_merge', 1)

推荐阅读