query from multiple tables with python or SQLite

Question:

I have three numeric tables with different row number, for an example:

tableA
1
8
tableB
10
23
15
80
tableC
500
200
180

And I want to find out something like:
A-B+C < 200

so the answer is

answer
1,10,180
1,15,180
8,10,180

Is there any ways to do this?

pandas.DataFrame.query and numpy.where seems only work on single table

Asked By: mike

||

Answers:

First use cross join, so possible filter one final DataFrame:

df = df1.merge(df2, how='cross').merge(df3, how='cross').query("tableA-tableB+tableC < 200")
print (df)
    tableA  tableB  tableC
1        1      10     200
2        1      10     180
4        1      23     200
5        1      23     180
7        1      15     200
8        1      15     180
10       1      80     200
11       1      80     180
13       8      10     200
14       8      10     180
16       8      23     200
17       8      23     180
19       8      15     200
20       8      15     180
22       8      80     200
23       8      80     180
Answered By: jezrael
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.