【发布时间】:2020-06-23 14:41:43
【问题描述】:
我是 Python 新手(习惯于与表弟 R 一起编码),但我仍然对 pandas 有所了解。有一个incredibly helpful, related post.,但我希望通过第二个数据集中定义的标准来过滤(),而不是通过一组数字进行过滤。
让我们做一些玩具数据:
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')
我试图通过选择小于或等于TooBig() 值的品种来对df() 进行子集化。我的伪代码如下:
df.groupby(['breed','species']).filter(lambda x : (x['height']<='TooBig Cutoff by Species').any())
我正在处理的数据是包含大约一百个标准的数千个条目,因此任何帮助定义可以在该规模上工作的解决方案都会非常有帮助。
提前致谢!
【问题讨论】:
标签: python pandas filter group-by