How to add filter to get score?

Hi, I compute F score as follows in pipeline, but doesn't work. error says filter cannot be add.
How to do it? thanks.

    return_on_assets = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).ROA], mask=tradable_stocks)
    total_assets = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).ASSETS], mask=tradable_stocks)
    operating_cash_flows = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).NCFO], mask=tradable_stocks)
    leverages = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).DE], mask=tradable_stocks)

    current_ratios = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).CURRENTRATIO], mask=tradable_stocks)
    shares_out = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).SHARESWA], mask=tradable_stocks)
    gross_margins = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).GROSSMARGIN], mask=tradable_stocks)
    asset_turnovers = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=0).ASSETTURNOVER], mask=tradable_stocks)

    #######
    previous_return_on_assets = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=-1).ROA], mask=tradable_stocks)
    previous_leverages = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=-1).DE], mask=tradable_stocks)
    previous_current_ratios = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=-1).CURRENTRATIO], mask=tradable_stocks)
    previous_shares_out = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=-1).SHARESWA], mask=tradable_stocks)
    previous_gross_margins = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=-1).GROSSMARGIN], mask=tradable_stocks)
    previous_asset_turnovers = Latest([sharadar.Fundamentals.slice(dimension='ARY', period_offset=-1).ASSETTURNOVER], mask=tradable_stocks)

    # 计算 F score
    have_positive_return_on_assets = return_on_assets > 0 
    have_positive_operating_cash_flows = operating_cash_flows > 0
    have_increasing_return_on_assets = return_on_assets > previous_return_on_assets
    have_more_cash_flow_than_incomes = (operating_cash_flows / total_assets) > return_on_assets
    have_decreasing_leverages = leverages < previous_leverages
    have_increasing_current_ratios = current_ratios > previous_current_ratios
    have_no_new_shares = shares_out <= previous_shares_out
    have_increasing_gross_margins = gross_margins > previous_gross_margins
    have_increasing_asset_turnovers = asset_turnovers > previous_asset_turnovers

    

    f_scores = (
    have_positive_return_on_assets
    + have_positive_operating_cash_flows
    + have_increasing_return_on_assets
    + have_more_cash_flow_than_incomes
    + have_decreasing_leverages
    + have_increasing_current_ratios
    + have_no_new_shares
    + have_increasing_gross_margins
    + have_increasing_asset_turnovers
    )
   
    return Pipeline(
        columns={
            'f_scores':f_scores,


        },
        
    )

In the upcoming version (2.9) you will be able to add filters by converting them to factors (1s and 0s):

f_scores = (
    have_positive_return_on_assets.as_factor()
    + have_positive_operating_cash_flows.as_factor()
…

Until then, you can include the individual F score components as columns in your pipeline, then add them using pandas when you collect the pipeline output:

f_scores = (
    pipeline_output.have_positive_return_on_assets.astype(int) 
    + pipeline_output.have_positive_operating_cash_flows.astype(int)
…