识别熊猫数据框中已经存在的行

用户名

我有两个Pandas数据框;让我们一个叫old_df另一个new_df我要突出显示new_df中不存在的行old_df因此,例如:

import pandas as pd

old_df = pd.DataFrame({'m':[1,2,3,4,5,6],
                       'n':['a','b','c','d','e','f']})

new_df = pd.DataFrame({'m':[2,5,7,8],
                       'n':['b','e','g','h']})

这些数据框如下所示:

   m  n
0  1  a
1  2  b
2  3  c
3  4  d
4  5  e
5  6  f

   m  n
0  2  b
1  5  e
2  7  g
3  8  h

我想为此创建一个掩码,new_df以指示该行是否已经存在old_df,例如:

0    True
1    True
2    False
3    False

我已经能够将列作为字符串连接为单个字符串值,以产生两个Pandas系列,然后.isin()在两个系列上使用,如下所示:

msk = pd.Series(new_df['m'].astype(str) + new_df['n']).isin(pd.Series(old_df['m'].astype(str) + old_df['n']))

print(msk)

生产:

0     True
1     True
2    False
3    False
dtype: bool

这是正确的结果,但是太丑陋以致无法给出最佳答案。我以为.isin()也许也可以在数据帧上工作,但是我无法使它工作。

有什么建议?

广晃

如果新数据框中没有重复的数据,则可以将它们串联起来并检查是否存在重复:

(pd.concat([d.assign(is_old=n) for d,n in zip((old_df,new_df), ('old','new'))])
   .assign(from_old=lambda x: x.duplicated(['m','n']))
   .query('is_old=="new"')
)

输出:

   m  n is_old  from_old
0  2  b    new      True
1  5  e    new      True
2  7  g    new     False
3  8  h    new     False

或者你可以用mergeindicator=True

(old_df.merge(new_df, on=['m','n'], how='right', indicator=True)
      .assign(from_old=lambda x: x['_merge']=='both')
)

输出:

   m  n      _merge  from_old
0  2  b        both      True
1  5  e        both      True
2  7  g  right_only     False
3  8  h  right_only     False

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

识别熊猫数据框中的最终父母

来自分类Dev

当某些行中已经存在数据时,获取数据框中的每个组合(R)

来自分类Dev

有没有办法在熊猫数据框中识别行实际包含数据的列

来自分类Dev

在熊猫数据框中使用标点识别行

来自分类Dev

更改熊猫数据框中的值是另一个数据框中存在同一行

来自分类Dev

熊猫数据框中的文本模式识别

来自分类Dev

熊猫中数据框行中的数据框列

来自分类Dev

如果熊猫数据框中的其他行存在,请删除它

来自分类Dev

使用熊猫查看1个数据框的整个行是否存在于其他数据框中

来自分类Dev

熊猫数据框中的列到行

来自分类Dev

熊猫中数据框的行式并集

来自分类Dev

比较熊猫数据框中的行值

来自分类Dev

从python熊猫数据框中删除行

来自分类Dev

熊猫数据框中的行的条件操作

来自分类Dev

总结熊猫数据框中的某些行

来自分类Dev

从熊猫数据框中永久删除行

来自分类Dev

从熊猫数据框中删除特定的行

来自分类Dev

从熊猫数据框中删除特定行

来自分类Dev

删除熊猫数据框中的行

来自分类Dev

复制熊猫数据框中的行

来自分类Dev

组合熊猫数据框中的行

来自分类Dev

映射熊猫数据框中的选定行

来自分类Dev

保留列表中存在的数据框的行

来自分类Dev

保留列表中存在的数据框的行

来自分类Dev

检查熊猫数据框中是否存在日期

来自分类Dev

迭代地将输出保存在熊猫数据框中

来自分类Dev

迭代地将输出保存在熊猫数据框中

来自分类Dev

当行中存在某些字符时,如何在熊猫数据框中获取子字符串?

来自分类Dev

使用行不存在于另一个数据框python中的行构造熊猫数据框

Related 相关文章

热门标签

归档