Я новичок в Python (привык к кодированию с двоюродным братом R) и все еще получаю навык pandas. Существует невероятно полезная связанная запись. , но вместо фильтрации () по номеру набора я надеялся сделать это по критериям, определенным во втором наборе данных.
Давайте создадим некоторые игрушечные данные:
import pandas as pd
pets = [['foxhound', 'dog', 20], ['husky', 'dog', 25], ['GSD', 'dog', 24],['Labrador', 'dog', 23],['Persian', 'cat', 7],['Siamese', 'cat', 6],['Tabby', 'cat', 5]]
df = pd.DataFrame(pets , columns = ['breed', 'species','height']).set_index('breed')
TooBigForManhattan = [['dog', 22],['cat', 6]]
TooBig = pd.DataFrame(TooBigForManhattan, columns = ['species','height']).set_index('species')
Я пытаюсь установить подмножество df()
, выбрав породы, которые меньше или равны значениям TooBig()
. Мой псевдокод выглядит следующим образом:
df.groupby(['breed','species']).filter(lambda x : (x['height']<='TooBig Cutoff by Species').any())
Данные, с которыми я работаю, представляют собой тысячи записей с примерно сотней критериев, поэтому любая помощь в определении решения, которое могло бы работать в таком масштабе, была бы очень полезной.
Заранее спасибо!