【发布时间】:2023-02-06 15:15:19
【问题描述】:
我的问题
我有一个 dict d 可以由以下格式组成的不同长度:
d = {
"foo": [
50,
100
],
"bar": [
5,
10
]
}
其中键是列名,值是用于过滤 datframe df 的所述列的最小值和最大值的两个长度列表。因此,鉴于上面的输入,我想在 50-100 之间过滤 df.foo,在 5-10 之间过滤 df.bar。
我试过的
当然,我可以像这样硬编码:
df.loc[(df.list(d.items())[0][0] > list(d.items())[0][1][0]) & (df.list(d.items())[0][0] < list(d.items())[0][1][1]) ...]
等等,但是键的数量(要过滤的列)可能会有所不同,而且这只是非常难看的代码。有没有更清洁/矢量化的方法来做到这一点?
语境
我正在构建一个 streamlit 应用程序,用户可以在其中在数据帧上创建 n min max 过滤器,上面列出的格式是 streamlit's slider 返回的格式
【问题讨论】: