类似的pandas声明SQL where子句

时间:2018-03-16 13:54:02

标签: python sql pandas where

两张桌子: 价格表价格表PRICE_LIST:

ITEM   PRICE
MANGO    5
BANANA   2
APPLE    2.5
ORANGE   1.5

销售记录REC_SALE(交易清单)

ITEM   SELLLING_PRICE
MANGO    4
MANGO    3
BANANA   2
BANANA   1
ORANGE   0.5
ORANGE   4

从REC_SALE中选择销售商品的记录少于PRICE_LIST表中列出的PRICE

SELECT A.*
FROM
(
    select RS.ITEM,RS.SELLING_PRICE, PL.PRICE AS ACTUAL_PRICE
    from REC_SALE RS,
         PRICE_LIST PL
    where RS.ITEM = PL.ITEM
) A
WHERE A.SELLING_PRICE < A.ACTUAL_PRICE ;

结果:

ITEM  SELLING_PRICE  PRICE
MANGO    4             5
MANGO    3             5
BANANA   1             2
ORANGE   0.5          1.5

我和jupyter笔记本中的数据帧有两个相同的表 使用pandas上面的SQL语句的等效python语句是什么?

2 个答案:

答案 0 :(得分:1)

带有merge

.loc

df1.merge(df2).loc[lambda x : x.PRICE>x.SELLLING_PRICE]
Out[198]: 
     ITEM  PRICE  SELLLING_PRICE
0   MANGO    5.0             4.0
1   MANGO    5.0             3.0
3  BANANA    2.0             1.0
4  ORANGE    1.5             0.5

答案 1 :(得分:0)

merge使用query

alt