通过引用另一个数据帧来提取具有上限的行

时间:2017-02-26 02:50:24

标签: python pandas dataframe

我有像这样的数据框

code  Type  num
a    A     3  
a    A     4 
a    A     5
a    B     6
b    A     7
b    A     8
c    B     9
c    C     10

我还有一个数据框,表示受限制的代码和类型以及每个代码和类型的num的上限。

code Type limit
a    A    4
b    A    7
c    C    11

所以我想得到下面的结果

code  Type  num
a    A     3  
a    A     4 
a    B     6
b    A     7
c    B     9
c    C     10

如何选择和提取行?

1 个答案:

答案 0 :(得分:1)

您可以使用merge后跟filter进程:

df.merge(df1, how="left")[lambda x: x.limit.isnull() | (x.num <= x.limit)].drop("limit", 1)

#code Type  num
#0  a    A    3
#1  a    A    4
#3  a    B    6 
#4  b    A    7
#6  c    B    9
#7  c    C   10