Pandas如何根据groupby计数结果为DataFrame设置布尔列
你已经生成的selected_filenames是索引为filename的布尔Series,直接通过一级索引匹配就能映射回原DataFrame,不需要用到transform,两种实现方式如下:
方法1:索引映射(最易读)
# 加fillna(False)是为了处理完全没有label2的filename,避免生成NaN值 df['selected'] = df.index.get_level_values('filename').map(selected_filenames).fillna(False)
方法2:多级索引reindex广播
# 指定level=0时,Pandas会自动将对应filename的布尔值广播到该分组下所有行 df['selected'] = selected_filenames.reindex(df.index, level=0).fillna(False).values
两种方法输出的结果都和你预期的完全一致。
内容的提问来源于stack exchange,提问作者scandav
相关产品推荐
相关产品推荐

