python - 如何获取未与另一个数据框相交的数据框的其余部分?
问题描述
我有三个数据框:
df_total
df1
df2
在哪里
df2 = pd.merge(df_total, df1[[Portfolio, Value]], on=Portfolio, how = inner)
我合并df_total
,df1
当Portfolio
列的值相同时。这导致df2
.
我怎样才能得到一个df3=
代表其余部分df_total
不包括在交叉点中的df2
?
解决方案
我找到了答案:
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)
推荐阅读
- php - 如何通过 PHP 向多个 IOS 设备发送推送通知?
- flutter - Flutter FilterChip 头像精选款式
- objective-c - 如何更改可可应用程序中的视图控制器?
- angularjs - 如何关闭模态和重定向当代
- java - 更新查询多行
- javascript - 如何仅提取没有整个匹配的组作为 String.match() 的输出?
- laravel-5 - 使用 Spipu\Html2Pdf 转换图像时出错
- python - Python 脚本无法使用 Cronjob 运行,但从浏览器执行
- java - 在模型映射中跳过源字段
- json - 如何从 WCF Web 服务返回 JSON?