python - 从其他数据框中的值中选择行
问题描述
我对 python 非常陌生,并且使用 pandas 来对数据框进行子集化。
我有三个需要处理的表,第一个看起来像下面的那个
主表
ID | 姓名 |
---|---|
A0 | 约翰 |
A1 | 蒂姆 |
A2 | 詹姆士 |
A3 | 简 |
我的第二张桌子在下面| 编号 | 年份 | | ---- | ---- | | A0 | 2019 | | A1 | 2020 | | A1 | 2019 |
我的第三张桌子在下面| 姓名 | 年份 | | ---- | ---- | | 简 | 2020 |
使用第二个表中的 id 和第三个表中的名称,我想对与第二个和第三个表中的 id 和名称匹配的第一个表(主表)进行子集化,并提供仅从年份 == 2020 中选择的选项
所以输出可能如下所示: | 编号 | 姓名 | | -------- | -------------- | | A1 | 蒂姆 | | A3 | 简 |
我正在考虑通过使用 if 循环来解决这个问题,但无法弄清楚
谢谢
解决方案
如果需要 filter master byid
或name
from second df
use boolean indexing
with Series.isin
for check members,条件由|
for bitwise链接OR
:
master[master['id'].isin(df1['id']) | master['name'].isin(df2['name'])]
编辑:对于按 s 过滤行Year
添加:
id1 = df1.loc[df1['Year'] == 2000, 'id']
name2 = df2.loc[df2['Year'] == 2000, 'name']
master[master['id'].isin(id1) | master['name'].isin(name2)]
推荐阅读
- python - 如何在 Linux 上使用 pyodbc 对 Active Directory 帐户使用用户/密码身份验证
- python-3.x - 如何用beautifulsoup点击按钮
- c# - 如何减少android上按钮上的文本和图像之间的空间
- node.js - AWS Lambda 函数中的嵌套 Cron 作业
- python - 在数组列表中添加或删除数组
- c++ - 在自己的 C++ 项目中使用从 Simulink 生成的 C/C++ 代码
- excel - VBA将日期文本更改为日期格式
- wordpress - 我有一个关于 WordPress 网站的问题,我所有的 WordPress 网站都很慢,我对此感到沮丧
- flutter - 交替调用 initState 多次?[扑]
- ruby - 从另一个目录调用 fastlane 及其操作