栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在pandas中,如何从基于另一个数据框的数据框中删除行?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在pandas中,如何从基于另一个数据框的数据框中删除行?

您可以将

boolean indexing
和条件一起使用
isin
Series
通过
~
以下方式反转布尔值:

import pandas as pdUSERS = pd.Dataframe({'email':['a@g.com','b@g.com','b@g.com','c@g.com','d@g.com']})print (USERS)     email0  a@g.com1  b@g.com2  b@g.com3  c@g.com4  d@g.comEXCLUDE = pd.Dataframe({'email':['a@g.com','d@g.com']})print (EXCLUDE)     email0  a@g.com1  d@g.comprint (USERS.email.isin(EXCLUDE.email))0     True1    False2    False3    False4     TrueName: email, dtype: boolprint (~USERS.email.isin(EXCLUDE.email))0    False1     True2     True3     True4    FalseName: email, dtype: boolprint (USERS[~USERS.email.isin(EXCLUDE.email)])     email1  b@g.com2  b@g.com3  c@g.com

另一个解决方案

merge

df = pd.merge(USERS, EXCLUDE, how='outer', indicator=True)print (df)     email     _merge0  a@g.com       both1  b@g.com  left_only2  b@g.com  left_only3  c@g.com  left_only4  d@g.com       bothprint (df.loc[df._merge == 'left_only', ['email']])     email1  b@g.com2  b@g.com3  c@g.com


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/652430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号