Предпосылка
Мне нужно использовать словарь в качестве фильтра для большого фрейма данных, где пары ключ-значение являются значениями в разных столбцах.
Этот словарь получен из отдельного фрейма данных с использованием dict(zip(df.id_col, df.rank_col))
, поэтому, если словарь не лучший способ, его можно изменить.
Это очень похоже на этот вопрос: Фильтрация кадра данных pandas по значениям из dict , но принципиально (я думаю) отличается, потому что мой словарь содержит парные значения столбцов:
Пример данных
df_x = pd.DataFrame({'id':[1,1,1,2,2,2,3,3,3],
'B':[1,1,1,0,1,0,1,0,1], 'Rank':['1','2','3','1', '2','3','1','2','3'],'D':[1,2,3,4,5,6,7,8,9]})
filter_dict = {'1':'1', '2':'3', '3':'2'}
Для этого фрейма данных df_x
Я бы хотел иметь возможность посмотреть словарь фильтров и применить его к набору столбцов, здесь id
и Rank
, поэтому фрейм данных урезан до:
Фактический исходный кадр данных составляет около 1M строк, а словарь -> 100 пар ключ-значение.
Спасибо за любую помощь.