Python Pandas面板索引:如何基于每个df中多个列的布尔值返回(索引)面板中的所有数据帧

Python Pandas面板索引:如何基于每个df中多个列的布尔值返回(索引)面板中的所有数据帧,python,indexing,panel,dataframe,pandas,Python,Indexing,Panel,Dataframe,Pandas,我有一个Pandas面板,其中有许多具有相同行/列标签的数据帧。我想制作一个新的面板,其中包含满足基于两列的特定标准的数据帧 这对于数据帧和行来说很容易:假设我有一个df,zHe_compare。我可以通过以下方式获得合适的行: zHe_compare[(zHe_compare['zHe_calc'] > 100) & (zHe_compare['zHe_med'] > 100) | ((zHe_obs_lo_2s <=zHe_compare['zHe_calc'])

我有一个Pandas面板,其中有许多具有相同行/列标签的数据帧。我想制作一个新的面板,其中包含满足基于两列的特定标准的数据帧

这对于数据帧和行来说很容易:假设我有一个df,zHe_compare。我可以通过以下方式获得合适的行:

zHe_compare[(zHe_compare['zHe_calc'] > 100) & (zHe_compare['zHe_med'] > 100) | ((zHe_obs_lo_2s <=zHe_compare['zHe_calc']) & (zHe_compare['zHe_calc'] <= zHe_obs_hi_2s))]
zHe_compare[(zHe_compare['zHe_calc']]>100)和(zHe_compare['zHe_med']>100)|((zHe_obs_lou 2s正如its中提到的,
面板
目前还没有开发好,因此您在使用
数据帧
时所依赖的甜美语法还不存在

同时,我建议使用
面板。选择
方法:

def is_good_result(item_label):
    # whatever condition over the selected item
    df = results_panel[item_label]
    return df['col1'].sum() > 5

good_results = results.select(is_good_result)
is\u good\u result
函数返回一个布尔值。请注意,它的参数不是
DataFrame
实例,因为
面板。select
将其参数应用于项标签,而不是该项的
DataFrame
内容

当然,你可以在一条语句中把整个Criteria函数塞进一个lambda,如果你对简洁感感感兴趣的话:

good_results = results.select(
                 lambda item_label: results[item_label]['col1'].sum() > 5
                 )

@Chang She,谢谢你的建议。我已经尝试过了,但不知道如何正确地进行索引。例如,如何从每个数据帧中指定
“zHe_calc”
?我已经尝试了
结果面板[results_panel.ix[sum(results_panel.ix['zHe_calc]min_num]
,以及许多相关的变体。
good_results = results.select(
                 lambda item_label: results[item_label]['col1'].sum() > 5
                 )