从数据框A中减去数据框B中的行,使用Python Pandas。

25 浏览
0 Comments

从数据框A中减去数据框B中的行,使用Python Pandas。

我有两个数据框,我们称之为A和B。它们完全相同,都有7列(我们称之为col1、col2、col3、col4、col5、col6和col7)。其中一些列包括client_id、client_first_name、client_last_name、telephone number等(出于保密目的,我不能透露确切的名称)。\nDataFrame A比DataFrame B大得多,DataFrame B的一些条目包含在DataFrame A中(即DataFrame B是DataFrame A的子集)。\n问题是,我想确保DataFrame A中的记录不在DataFrame B中,即从DataFrame A中“减去”DataFrame B。我该如何做呢?\n到目前为止,我一直在为两个数据框添加一个名为\'group\'的额外列,然后使用pd.merge(A, B, how=\'left\', on=\'col)将它们合并,然后提取出那些最终具有两个不同值的条目\'group_x\'\'group_y\'(合并创建了这两个组)。\n有没有更简单的方法?我尝试了很多方法,但都没有成功。

0
0 Comments

问题的出现原因:

用户想要从一个DataFrame(DataFrame A)中减去另一个DataFrame(DataFrame B)的行。用户提供了一种解决方法,但是想知道是否还有其他方法可以实现相同的功能。

问题的解决方法:

用户提供了一种解决方法,即使用dfA.ix[!dfA.col.isin(dbB.col)]语句。这个语句的作用是从DataFrame A中选择那些不在DataFrame B的col列中的行。这样就可以实现从DataFrame A中减去DataFrame B的行的操作。

整理成一篇文章如下:

在Python的pandas库中,有时候我们需要从一个DataFrame中减去另一个DataFrame的行。这个问题的解决方法有很多种,下面是一种常见的解决方法。

用户提出了一个问题,即如何从一个DataFrame A中减去另一个DataFrame B的行。用户提供了一种解决方法,即使用dfA.ix[!dfA.col.isin(dbB.col)]语句。这个语句的作用是从DataFrame A中选择那些不在DataFrame B的col列中的行。这样就可以实现从DataFrame A中减去DataFrame B的行的操作。

这种解决方法非常简洁和高效。它使用了pandas库中的.ix方法来选择DataFrame A中的行,并使用isin方法来判断这些行是否存在于DataFrame B的col列中。通过取反运算符“!”,可以选择那些不在DataFrame B中的行。这样就实现了从DataFrame A中减去DataFrame B的行的操作。

总结一下,从一个DataFrame中减去另一个DataFrame的行可以使用dfA.ix[!dfA.col.isin(dbB.col)]语句来实现。这种方法非常简洁和高效,可以满足大部分的需求。希望这篇文章能帮助到大家。

0