Я уже несколько часов пытаюсь найти ответ, но не могу заставить его работать в моем конкретном случае.Самое близкое, что я мог найти, было это: Применение нескольких фильтров для хранения строк к кадру данных панд с использованием словаря
У меня есть pd.Dataframe цен сделок со следующими столбцами:
df1 = database[['DealID',
'Price',
'Attribute A',
'Attribute B',
'Attribute C']]
Атрибуты подразделяются на следующие:
filter_options = {
'Attribute A': ["A1","A2","A3","A4"],
'Attribute B': ["B1","B2","B3","B4"],
'Attribute C': ["C1","C2","C3"],
}
Я хочу отфильтровать df1, используя подмножество filter_options
, которое имеет несколько значений на ключ:
filter = {
'Attribute A': ["A1","A2"],
'Attribute B': ["B1"],
'Attribute C': ["C1","C3"],
}
Приведенное ниже прекрасно работает, когда в словаре имеется только одно значение для ключа.
df_filtered = df1.loc[(df1[list(filter)] == pd.Series(filter)).all(axis=1)]
Однако могу ли я получить один и тот же результат с несколькими значениями на ключ?
Спасибо!