我正在编写一个带有 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), :]
但不知道如何按范围过滤。呸。