python - Pandas 删除数据帧中不在另一个数据帧中的行
问题描述
我有两个熊猫数据框,它们有一些共同的行。
我想识别 df1 中不在 df2 中的行(基于 df1.x = df2.x 之类的条件)并将它们从 df1 中删除。
还保持 df2 中的所有内容不变。
df1 = pandas.DataFrame(data = {'x' : [1, 2, 3, 4, 5], 'y' : [10, 11, 12, 13, 14]})
df2 = pandas.DataFrame(data = {'x' : [4, 5, 6], 'z' : [10, 13, 14]})
解决方案
请试试这个:
df = pd.merge(df1, df2, how='left', indicator='Exist')
df['Exist'] = np.where(df.Exist == 'both', True, False)
df = df[df['Exist']==True].drop(['Exist','z'], axis=1)
推荐阅读
- html - Rails 和 html - 原始风格的 fontawesome
- angular - 使用服务在组件之间共享数据不起作用(Angular)
- java - 如何触发关闭 Guava AbstractScheduledService?
- javascript - 如何使用模块导出拉出处理程序?
- r - 从 ggplot2 获取图例名称和颜色?
- ubuntu - Nginx 配置文件在站点/启用中寻找默认文件
- php - 如何摆脱意想不到的角色
- windows-7 - 移除 JS:Miner-AI[PUP]
- android - 单击 DrawerLayout 导致单击主布局
- r - ndtv 和 r shiny:节点标签不显示