pandas 根据给定的条件动态筛选

def dynamic_filter(df, conditions):
    """
    根据给定的条件动态筛选 DataFrame。

    :param df: pandas DataFrame
    :param conditions: 字典,键为列名,值为筛选条件(单个值、列表或其他布尔表达式)
    :return: 筛选后的 DataFrame
    """
    mask = pd.Series(True, index=df.index)  # 初始化全True的mask

    for column, condition in conditions.items():

        if isinstance(condition, (list, tuple)):
            # 使用 isin 方法进行筛选
            mask &= df[column].isin(condition)
        elif callable(condition):
            # 如果条件是一个函数,则调用该函数
            mask &= condition(df[column])
        else:
            # 直接比较
            mask &= df[column] == condition

    return df[mask]


conditions = {"DOE_condition0": ["before_DR"]}
 
 

你可能感兴趣的:(pandas,pandas,python)