如何在Pandas多级索引DataFrame中查找组内元数据不一致的分组?
筛选组内元数据不一致的分组解决方案
核心思路
先按Group分组统计每个元数据字段的唯一值数量,找出至少有一个字段存在多个不同值的分组,再从原DataFrame中提取这些分组的全部数据。
完整代码实现
import pandas as pd # 读取数据生成多级索引DataFrame df = pd.read_csv('files.csv', index_col=['Group', 'File Number']) # 统计每个Group下各字段的唯一值数量,标记存在不一致的分组 has_inconsistency = df.groupby(level='Group').nunique().any(axis=1) # 提取存在不一致的分组名称 target_groups = has_inconsistency[has_inconsistency].index # 筛选出目标分组的全部数据 result_df = df.loc[target_groups]
代码说明
df.groupby(level='Group').nunique():按Group维度分组,计算每个组内Value 1、Value 2的唯一值数量.any(axis=1):对每个分组进行判断,只要有一个字段的唯一值数量大于1(也就是组内存在不一致),就标记为True- 最后通过
loc索引,直接提取所有标记为True的分组数据,得到的result_df就是你需要的结果
内容的提问来源于stack exchange,提问作者redwytnblakII
相关产品推荐
相关产品推荐

