在Pandas中计算两个数据帧之间的集合差异[英] Computing Set Difference in Pandas between two dataframes

本文是小编为大家收集整理的关于在Pandas中计算两个数据帧之间的集合差异的处理方法,想解了在Pandas中计算两个数据帧之间的集合差异的问题怎么解决?在Pandas中计算两个数据帧之间的集合差异问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

想知道如何使用两个不同的数据帧计算 Python 的 Pandas 中的集合差异.

一个数据框 (df1) 的格式为:

State  City          Population
NY     Albany        856654
WV     Wheeling      23434
SC     Charleston    35323
OH     Columbus      343534
WV     Charleston    34523

而第二个数据框(df2)是

State  City
WV     Wheeling
OH     Columns

我需要一个返回以下数据帧的操作

State   City        Population
NY      Albany      856654
SC      Charleston  35323
WV      Charleston  34523

基本上,我不知道如何根据 2 列从 df1 中"减去" df2(两者都需要,因为我将在不同州重复城市名称).

推荐答案

与 indicator 进行左连接,提供每行的来源信息,然后您可以根据 indicator 进行过滤:

df1.merge(df2, indicator=True, how="left")[lambda x: x._merge=='left_only'].drop('_merge',1)

#State       City   Population
#0  NY      Albany      856654
#2  SC  Charleston       35323
#4  WV  Charleston       34523

本文地址:https://www.itbaoku.cn/post/1728072.html