基于用户输入将多个过滤器应用于数据框的pythonic方法

v_coder12

假设我有一个名人的数据框,其中包括他们的年龄,种族,身高,行业等。

我想创建一个函数,在其中可以系统地过滤数据帧,以便可以应用多个过滤器。

例如

def filter_data(df, filter_col, filter_val, filter_amount):
    if filter_amount == 1:
        df = df[df.filter_col[0] == filter_val[0]]
    if filter_amount == 2:
        df = df[(df.filter_col[0] == filter_val[0]) & (df.filter_col[1] == filter_val[1])]

    etc

其中filter_col是您希望作为其过滤依据的列的列表,filter_val也是值的列表,filter_amount是一个整数

我希望它是系统的,以便对于任何过滤量,它都可以根据列表的值继续过滤数据集,而不必手动将其编码出来

救命。

紫珊桑德吉

由于过滤器执行and和(&),因此这样做是有意义的:

import pandas as pd

def filter_data(df, filter_col, filter_val, filter_amount):
    out = df.copy()
    for i in range(filter_amount):
        out = out[out[filter_col[i]] == filter_val[i]]
    return out

def main():
    x = pd.DataFrame({"Age": [12, 44, 23], "Ethnicity": ["White", "Black", "White"], "Height": [180, 182, 168]})
    #    Age Ethnicity  Height
    # 0   12     White     180
    # 1   44     Black     182
    # 2   23     White     168

    y = filter_data(x, ["Ethnicity", "Height"], ["White", 180], 1)
    #    Age Ethnicity  Height
    # 0   12     White     180
    # 2   23     White     168

    z = filter_data(x, ["Ethnicity", "Height"], ["White", 180], 2)
    #    Age Ethnicity  Height
    # 0   12     White     180

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将多个过滤器应用于数组javascript

来自分类Dev

将片段过滤器应用于多个源

来自分类Dev

使用过滤器将数据框应用于不同变量

来自分类Dev

将LOESS过滤器/回归应用于数据框的所有列

来自分类Dev

使用字典将多个字符串包含过滤器应用于熊猫数据框

来自分类Dev

如何将多个过滤器应用于数据透视表中的多个值字段?

来自分类Dev

根据条件将过滤器应用于数据框

来自分类Dev

查询数据框,但仅将过滤器应用于列值不是NaN的行

来自分类Dev

如何转换此数据框并将过滤器应用于单元格?

来自分类Dev

巴特沃斯过滤器应用于熊猫数据框的一列

来自分类Dev

如何创建将不同过滤器应用于数据框的循环

来自分类Dev

将货币过滤器应用于angularjs的输入字段

来自分类Dev

需要将多个过滤器应用于JSON数据

来自分类Dev

将多个过滤器应用于Google Charts仪表盘

来自分类Dev

使用JavaScript将多个过滤器类别应用于<li>的列表

来自分类Dev

在Laravel 5中将多个过滤器应用于表

来自分类Dev

将过滤器应用于列表并显示数据

来自分类Dev

将SVG过滤器仅应用于“填充”

来自分类Dev

将特定通道应用于ffmpeg过滤器

来自分类Dev

如何将Delphi ADOTable过滤器应用于日期数据类型

来自分类Dev

将中值过滤器应用于2轴的数据

来自分类Dev

Angular JS - 将 Javascript 过滤逻辑应用于 Angular 过滤器

来自分类Dev

AngularJS:将货币过滤器应用于自定义过滤器的返回值

来自分类Dev

WordPress的| 将功能/过滤器应用于特定模板(功能为图像的功能过滤器)

来自分类Dev

如何将过滤器号应用于输入值 AngularJS

来自分类Dev

如何将过滤器号应用于输入值 AngularJS

来自分类Dev

如何将相等过滤器应用于用户请求?

来自分类Dev

如何将用户过滤器应用于excel vba中的选择?

来自分类Dev

如何将过滤器应用于具有多个“ AND”条件的DataView

Related 相关文章

  1. 1

    将多个过滤器应用于数组javascript

  2. 2

    将片段过滤器应用于多个源

  3. 3

    使用过滤器将数据框应用于不同变量

  4. 4

    将LOESS过滤器/回归应用于数据框的所有列

  5. 5

    使用字典将多个字符串包含过滤器应用于熊猫数据框

  6. 6

    如何将多个过滤器应用于数据透视表中的多个值字段?

  7. 7

    根据条件将过滤器应用于数据框

  8. 8

    查询数据框,但仅将过滤器应用于列值不是NaN的行

  9. 9

    如何转换此数据框并将过滤器应用于单元格?

  10. 10

    巴特沃斯过滤器应用于熊猫数据框的一列

  11. 11

    如何创建将不同过滤器应用于数据框的循环

  12. 12

    将货币过滤器应用于angularjs的输入字段

  13. 13

    需要将多个过滤器应用于JSON数据

  14. 14

    将多个过滤器应用于Google Charts仪表盘

  15. 15

    使用JavaScript将多个过滤器类别应用于<li>的列表

  16. 16

    在Laravel 5中将多个过滤器应用于表

  17. 17

    将过滤器应用于列表并显示数据

  18. 18

    将SVG过滤器仅应用于“填充”

  19. 19

    将特定通道应用于ffmpeg过滤器

  20. 20

    如何将Delphi ADOTable过滤器应用于日期数据类型

  21. 21

    将中值过滤器应用于2轴的数据

  22. 22

    Angular JS - 将 Javascript 过滤逻辑应用于 Angular 过滤器

  23. 23

    AngularJS:将货币过滤器应用于自定义过滤器的返回值

  24. 24

    WordPress的| 将功能/过滤器应用于特定模板(功能为图像的功能过滤器)

  25. 25

    如何将过滤器号应用于输入值 AngularJS

  26. 26

    如何将过滤器号应用于输入值 AngularJS

  27. 27

    如何将相等过滤器应用于用户请求?

  28. 28

    如何将用户过滤器应用于excel vba中的选择?

  29. 29

    如何将过滤器应用于具有多个“ AND”条件的DataView

热门标签

归档