pandas如何删除Total表中Student表无匹配ID的行?
Pandas 按ID匹配过滤DataFrame行的解决方案
你可以通过以下两种常用方式实现需求:
方法1:使用isin()方法直接过滤
这是最简洁的实现,直接筛选Total表中ID存在于Student表ID列的行即可:
import pandas as pd # 构造你的两个DataFrame数据 df_total = pd.DataFrame({ 'ID': [115, 118, 34, 897], 'name': ['john', 'mike', 'mac', 'sarah'] }) df_student = pd.DataFrame({ 'ID': [34, 118, 897], 'name': ['mac', 'mike', 'sarah'] }) # 核心过滤逻辑 df_filtered = df_total[df_total['ID'].isin(df_student['ID'])]
方法2:使用内连接实现
如果后续需要关联Student表的其他字段,可以用内连接的方式实现同样的过滤效果:
df_filtered = pd.merge(df_total, df_student[['ID']], on='ID', how='inner')
最终输出的df_filtered结果如下:
| 序号 | ID | name |
|---|---|---|
| 0 | 118 | mike |
| 1 | 34 | mac |
| 2 | 897 | sarah |
内容的提问来源于stack exchange,提问作者mmkb
相关产品推荐
相关产品推荐

