Great tutorialThere are great tutorials already, but bear in mind that before jumping wildly into the usage of eval/query attracted by its simpler syntax, it has severe performance issues if your dataset has less than 15,000 rows.
In that case, simply use df.loc[mask1, mask2].
Refer to: https://pandas.pydata.org/pandas-docs/version/0.22/enhancingperf.html#enhancingperf-evalExpression Evaluation via eval()
