назрел вот такой вопрос - при джойне в sql можно задавать несколько условий, например ... LEFT JOIN table b ON a.Key=b.Key AND b.value>100 AND (a.value>b.value OR b.value2 IS NULL) ... есть ли такая возможность в рамках df.merge? или нужно сначала мержить, а уже потом дофильтровывать?
я посидел повтыкал в этот пример, разве .filter не снесет мне во всём фрейме строки, где 'Col4'>100 и'Col2'<500? Это я к тому, что условный кликхаус в конструкции LEFT JOIN table b ON a.CustomerID = b.CustomerID AND b.OrderDate >'20090515' не уберет мне строки из всего фрейма, а просто приджойнит нуллы, в строках которые не попадут под кондишен
ну тут речь скорее не про фильтр (под фильтром думаю логично понимать как раз блоки where и having), а кондишены джойна. Я погуглил более тщательно, и вроде бы в df.merge все же нет возможности задавать множественные кондишены (кроме A=B and C=D итд, которые вы и описали выше)
а если left join table2 as t2 ON table1.name = t2.name AND table1.id = t2.id AND t2.OrderDate>'20090515' то тут просто приджойните нуллы, где t2.OrderDate>'20090515' вернет фолс