AutoPandas is a
program synthesis
engine for the Pandas python library.
It adopts the programming-by-example approach in that users specify intent using input-output examples which are then used
to synthesize a program that correctly produces the desired output given the input. This website serves as an interactive interface to the core engine.
Getting Started
I/O Example
We currently allow you to specify one input-output example. Inputs can be added by clicking the
"Add Input" button. The primary input format is code, which accepts arbitary
Python, however we provide a preview for the common data-structures such as Pandas DataFrames that allow
visual editing via the Preview tab. Changes made in the preview, when saved, are reflected in the code.
Writing Code
The code-based input boxes accept Jupyter-style snippets i.e. the snippet can be a sequence of statements
such that the last statement is an expression. An example of such a snippet is provided below.
Try copy-pasting it into one of the code-boxes on the left and see the preview!
Currently we synthesize sequences of function calls (of a maximum length three) where functions are one of ~120 Pandas
DataFrame functions, a list of which is available here. We currently do not synthesize conditionals or lambda expressions such as the ones used with df.loc.
However, one can provide such expressions as an additional input, and AutoPandas can figure out the right arguments to pass to such functions.
How long does AutoPandas take to find a solution?
AutoPandas outputs solutions as soon as it finds them. The first one is usually quick (< 10 seconds).
Currently, we timeout our system after 30 seconds per request, and output all the solutions we find. We plan to increase this timeout as we add more compute.
Can't find your question? Send us your queries here!