Ibis
Expressive analytics in Python at any scale
...Ibis builds on top of and works with existing Python tools. Ibis provides a full-featured replacement for SQL SELECT queries, but expressed with Python code. All tables in Ibis are immutable. To select a subset of a table's columns, or to add new columns, you must produce a new table by means of a projection. If you pass a function instead of a string or Ibis expression in any projection context, it will be invoked with the "parent" table as its argument. This can help significantly when [composing complex operations.