合并行数不同的两个DataFrame:多列合并及匹配行保留问题
解决足球赛事数据集合并问题
核心方案:用内连接(Inner Join)实现多列匹配+保留共同记录
不管用Python Pandas还是SQL,都可以通过内连接同时解决你的两个问题——既基于多列(Match_ID+Country_ID)匹配,又只保留两个数据集都存在的Match_ID记录。
用Python Pandas处理的代码示例
假设你的两个数据集分别是df1和df2:
import pandas as pd # 基于Match_ID和Country_ID两列做内连接 merged_df = pd.merge( df1, df2, on=['Match_ID', 'Country_ID'], # 指定多列作为匹配键 how='inner' # 仅保留双方都有的记录 )
on=['Match_ID', 'Country_ID']:确保合并时同时校验这两个字段的一致性,避免单一Match_ID可能出现的跨国家重复问题how='inner':自动过滤掉仅在其中一个数据集中出现的Match_ID,最终结果只包含两个数据集共有的赛事记录
用SQL处理的代码示例
如果你的数据存储在数据库中,可以直接执行内连接查询:
SELECT * FROM dataset1 d1 INNER JOIN dataset2 d2 ON d1.Match_ID = d2.Match_ID AND d1.Country_ID = d2.Country_ID;
这里的AND条件就是同时匹配两列,INNER JOIN同样只返回双方都存在的记录。
内容的提问来源于stack exchange,提问作者drumtr
相关产品推荐
相关产品推荐

