python - 比较后如何从数据框中删除行
问题描述
我想过滤我的数据框,使用filter
带有条件的部分。我不知道该怎么做
import numpy as np
table = pd.DataFrame({'movie': ['thg', 'thg', 'mol', 'mol', 'lob', 'lob'],
'rating': [3., 4., 5., np.nan, np.nan, np.nan],
'name': ['John', 'Paul', 'Adam', 'Graham', 'Eva', 'Thomas']})
filter = pd.DataFrame({'name': ['John', 'Paul','Adam', 'Graham', 'Eva', 'Thomas'],
'qty': [1, 1, 3, 10, 7, 5]})
>>> table
movie name rating
0 thg John 3
1 thg Paul 4
3 mol Adam 5
4 mol Graham NaN
5 lob Eva NaN
6 lob Thomas NaN
我知道这不起作用,但我无法改变这一点,请帮助我
result=df[(df['name'] == filter[qty<3]) ]
>>> result
movie name rating
0 thg John 3
1 thg Paul 4
解决方案
我相信你需要:
table[table['name'].isin(filt.loc[filt['qty']<3,'name'])]
movie rating name
0 thg 3.0 John
1 thg 4.0 Paul
注意:我已将filter
变量更改为filt
因为filter
它是一个内置函数,您不应该使用这样的名称命名变量
推荐阅读
- ethereum - 来自以太坊网站的 ERC20 代币代码
- apache - 网站是否需要为使用 SSL 的反向代理打开端口 443
- ecmascript-6 - setTimeout 使用 async-await 关键字,但不知道它是如何工作的
- excel - 动态搜索工作表并添加单元格的 VBA 代码
- node.js - 无论如何要使用 Multer 解压缩上传到内存中的文件?
- python - 如何在 python 的模块中加载文本文件?
- sql - 让两个 SQLite 数据库相互引用
- ms-access - MS Access SQL“喜欢”和通配符仅返回完全匹配
- html - “Hello Word” (html) 网站在专用服务器中?
- node.js - Nodemailer ECONNREFUSED 本地主机