python - 使用python从一个df中删除不在另一个df中的记录
问题描述
我有一个示例数据帧1
date username cities
2021-03-01 K John New york
2021-03-01 K John LA
2021-03-02 Ken Miles Florida
2021-03-02 Ken Miles LA
dataframe2 包含
date username planned_cities
2021-03-01 K John Alabama
2021-03-02 K John LA
2021-03-02 Ken Miles Florida
2021-03-02 Ken Miles California
预期结果(仅考虑date username
,删除不在 df1 中的列)
date username planned_cities
2021-03-01 K John Alabama
2021-03-02 Ken Miles Florida
2021-03-02 Ken Miles California
由于2021-03-02 K John
df1 的记录中没有,它被删除了。我怎么能做到这一点?
解决方案
您可以使用Index.isin
您感兴趣的列,然后使用布尔索引:
cols = ['date','username']
idx1 = pd.MultiIndex.from_frame(df1[cols])
idx2 = pd.MultiIndex.from_frame(df2[cols])
out = df2[idx2.isin(idx1)]
date username planned_cities
2021-03-01 K John Alabama
2021-03-02 Ken Miles Florida
2021-03-02 Ken Miles California
推荐阅读
- linux - 我有一个要求,如果空间超过 85%,我需要删除文件,这需要安排
- ios - 在项目中添加与旧 iOS 兼容的 iOS 14 小部件
- reactjs - 希望数据库中的数据进入我制作的反应表
- javascript - 在 IE11 中不起作用的内容可编辑 div 中将插入符号移至末尾
- sql - pyspark 使用 sql 查询并通过优化进行分组
- python - Python:如何从包含页面@odata.nextLink 的 Odata API 中提取数据
- amazon-web-services - Terraform:depends_on 模块无法在 AWS 中按预期工作
- sql - 如何合并 sql 查询以根据日期获取输出
- java - 如何在 XWPFDocument Apache POI 中旋转图片
- python - 生成器的 max() 是构建类似列表的对象还是工作效率更高?