python - 类似pandas语句的SQL where子句

标签 python sql pandas where-clause

两个表: 价目表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 语句是什么?

最佳答案

合并.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

关于python - 类似pandas语句的SQL where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322418/

相关文章:

python - 如果 set1 的值 = set2 的键,则将一组值替换为另一组的值?

MySQL 函数 IFNULL 无法与通配符一起正常工作

python - Pandas excel 到 python 的长列

python - 如何根据天聚合日期时间数据框,然后如何计算平均值?

python - 在 Python 中删除停用词的更快方法

python - time.strptime() 和 python-twitter 错误

python - celery 打败了 Heroku

MySQL LIMIT 最多为某个数字 - 取决于先前的子查询

php - 从由引用表连接的两个表中选择?

python - 自定义 Sklearn Transformer 单独工作,在管道中使用时抛出错误