迭代字典以搜索数据框,按范围过滤

时间:2021-01-24 03:11:58

标签: python pandas dataframe dictionary

我正在编写一个带有 streamlit 的小网页,用户从下拉菜单/滑块菜单中选择变量/标准,然后按标准搜索数据框。

条件是这样的:

    dict_choice = {'Site': 'Broadbent',
       'Cover': '53',
       'Weight': (1.9875, 5.9625),
       'SVL': (18.75, 56.25),
       'VTL': (22.25, 66.75),
       'Regen': (16.5, 49.5)}

此时,我想搜索 df,如下所示:

   newdf = df.loc[(df['Site']==site_choice) &
           (df['Cover']==cover_choice) & 
           ((df['Weight']>=weight_choice[0]) & (df['Weight']<=weight_choice[1])) &
           ((df['VTL']>=vtl_choice[0]) & (df['VTL']<=vtl_choice[1])) &
           ((df['SVL']>=svl_choice[0]) & (df['SVL']<=svl_choice[1])) &
           ((df['Regen']>=regen_choice[0]) & (df['Regen']<=regen_choice[1]))
           ]

如何遍历字典以进行搜索查询?我的主要问题是包含范围的标准。

我知道如果没有范围,我可以这样做:

  results_df = df.loc[df[list(dict_choice.keys())].isin(list(dict_choice.values())).all(axis=1), :]

但不知道如何按范围过滤。呸。

0 个答案:

没有答案
相关问题