很抱歉,如果这是一个重复的问题,或者标题不好,我无法在一行中正确地表达我试图从一般意义上找到的东西,所以使用下面的例子来说明我想要做的事情。
我希望根据另一个 Dataframe 的最小值和最大值从 Dataframe 中获取某些行。最小值和最大值取决于分配的组:
data = {
'Name': ['John', 'John', 'Sam', 'Sam', 'Tim', 'Tim'],
'Salary': [18000, 20000, 15000, 35000, 12000, 30000]
}
boundary = {
'Name': ['John', 'Sam', 'Tim'],
'Min': [19000, 18000, 10000],
'Max': [21000, 30000, 32000]
}
data = pd.DataFrame(data, columns = ['Name', 'Salary'])
boundary = pd.DataFrame(boundary, columns = ['Name', 'Min', 'Max'])
我希望结果是下面的 Dataframe ,其中只保留数据df中距离边界df大于max和小于min的行。
Name Salary
0 John 18000
2 Sam 15000
3 Sam 35000
我可以用一个最小/最大值来完成这项任务,但无法与参与的团队一起完成,请提前感谢。
3条答案
按热度按时间enyaitl31#
与查询合并
sauutmhj2#
一种方法可以是:
df.merge
连接Min
和Max
。Series.between
与一元运算符(~
)组合,以便反转结果(即,我们正在寻找边界之外的所有值)。Name
和Salary
,通过使用df.loc
实现这一点,或者也可以使用i1j 3k1l。mzsu5hc03#
小时
请务必回答这个问题。提供详细信息并分享您的研究成果!