Просто используйте оператор ==
или pd.Series.eq
, что требует точного соответствия:
aggregate = [('Total_RFQ', 'size'),
('Done_RFQ', lambda x: x.eq('Done').sum())]
Если вы хотите включить несколько строк, используйте pd.Series.isin
:
aggregate = [('Total_RFQ', 'size'),
('Done_RFQ', lambda x: x.isin(['Done', 'Tied Done']).sum())]
Если вам нужно исключить одну строку, в то время как все остальные с 'Done'
, объедините условия с помощью побитового "и" оператора &
. Например, с !=
или pd.Series.ne
:
aggregate = [('Total_RFQ', 'size'),
('Done_RFQ', lambda x: ((x.str.contains('Done') & (x.ne('Done Cancel')).sum())]