2 回答

TA贡献1847条经验 获得超11个赞
看起来你需要get_level_values+ map,然后使用值比较得到 df 的布尔过滤器
df[df['Filter Column'].values>=df.index.get_level_values(0).map(filter_value)]
Out[108]:
Value Filter Column
Color Count
red 2 2 1
blue 2 2 3
3 2 4

TA贡献1858条经验 获得超8个赞
你可以试试这个:
pd.concat(df.align(filter_value.rename('filter'), level=0, axis=0), axis=1)\
.loc[lambda x: x['Filter Column']>=x['filter']]
输出:
Value Filter Column filter
Color Count
red 2 2 1 1
blue 2 2 3 3
3 2 4 3
添加回答
举报