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