如何使用Pandas对比两个DataFrame中探险队成员数量是否一致
实现步骤
步骤1:重命名统计结果的计数字段
你统计得到的nbre_membres_expedition中,member_id列实际是各探险队的成员计数,为了避免和expeditions表的members字段混淆,先做重命名:
nbre_membres_expedition = nbre_membres_expedition.rename(columns={"member_id": "calc_member_count"})
步骤2:关联两个表的成员数字段
把expeditions表的探险队ID、预存成员数,和你统计的计数值按expedition_id关联:
# 仅提取expeditions需要的字段,减少冗余 compare_df = pd.merge( left=expeditions[["expedition_id", "members"]], right=nbre_membres_expedition, on="expedition_id", how="outer" # 用外连接保留两边所有ID,可同时检查ID不匹配的情况 )
步骤3:对比数值是否一致
新增列标记是否一致,同时可直接筛选出不一致的记录:
# 标记两个数值是否相等,自动处理空值情况 compare_df["is_consistent"] = compare_df["members"] == compare_df["calc_member_count"] # 查看所有不一致的记录 inconsistent_records = compare_df[~compare_df["is_consistent"]] print(inconsistent_records)
补充说明
- 如果只想检查
expeditions表中存在的探险队的成员数是否一致,把merge的how参数改为"left"即可 - 不一致的记录通常包含两类:一类是探险队ID只存在于单张表中,另一类是两张表都有ID但计数不匹配
内容的提问来源于stack exchange,提问作者easy
相关产品推荐
相关产品推荐

