我试图在 python 中找出一个嵌套的 case 条件语句,
输入左表:
输入右表:
最终输出:
目标是根据以下嵌套条件在最终输出中创建“new_value”列:
CASE WHEN value IS NULL
AND left_table.country IN (SELECT DISTINCT country from right_table)
THEN CASE WHEN left_class = 'class1' THEN
CASE WHEN (
SELECT value
from right_table n
WHERE (n.right_class = 'class2')
AND n.country= right_table.country
AND n.year = left_table.year) IS NOT NULL
THEN (
SELECT SUM(value)*2
from right_table n
WHERE (n.right_class = 'class1' OR n.right_class = 'class2')
AND n.country= left_table.country
AND n.year = left_table.year)
ELSE (
SELECT SUM(value)*2
from right_table n
WHERE (n.right_class = 'class1' OR n.right_class = 'class3')
AND n.country= left_table.country
AND n.year = left_table.year)
END
ELSE NULL END
ELSE value END AS new_value
上面是在sql中,但我需要在python中
要将 SQL 逻辑转换为 Python,您可以使用 Pandas 库来处理 DataFrames。因为它提供了一种对 Python 中的表进行过滤、分组和应用转换的方法。
以下是将 SQL 查询逻辑转换为 Python 的方法: