Pandas面板花式索引:如何根据每个d中多个列的布尔值返回面板中所有数据帧的索引

2024-09-29 22:24:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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

对于数据帧和行,这很简单:假设我有一个df,zHe峎比较。我可以通过以下方式获得合适的行:

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))]

但我该怎么做(伪代码,简化布尔值):

^{pr2}$

我知道内部的布尔部分,但是如何为面板中的每个数据帧指定这个值?因为每个df都需要多个列,所以使用panel.minor_xs切片技术还没有成功。在

谢谢!在


Tags: 数据代码面板lopandasdf方式calc
1条回答
网友
1楼 · 发布于 2024-09-29 22:24:47

正如在其documentation中所提到的,Panel目前开发得有点不足,所以在使用DataFrame时所依赖的语法还不完善。在

同时,我建议使用Panel.select方法:

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_good_result函数返回一个布尔值。注意,它的参数不是DataFrame实例,因为Panel.select将其参数应用于项标签,而不是该项的DataFrame内容。在

当然,你可以在一个语句中把整个criterian函数塞进lambda语句中,如果你专注于简洁的话:

^{pr2}$

相关问题 更多 >

    热门问题