4 ms·
I want to applaud this effort, coming up with new ways of manipulating pandas dataframes is sorely needed. This project along with sketch[1] takes a conversati
by paddy_m 3y ago
I want to applaud this effort, coming up with new ways of manipulating pandas dataframes is sorely needed. This project along with sketch[1] takes a conversational approach.
I have been building my own open source tool for wrangling pandas dataframes - Buckaroo[2]. The aim of Buckaroo is to automate common data cleaning and exploration techniques, and provide a GUI to quickly access transforms and see their results along with the python code to perform the transform. The jupyter notebook is great for presentation, but clunky for iterative exploration.
Here are the most common operations I do when exploring a new dataset
1. Assess - What are the columns in this dataset, what are their ranges of values, how do these columns vary together. Buckaroo offers toggable summary stats to show this info.
2. Initial Clean - Are all of the date columns parsed as datetimes? Are columns that contain integers typed as integers (a single string in the colum will force the whole column to type object). Clean the types with safeint/dropna...
3. Filter to a subset of data based on criteria. Row wise filtering.
4. Perform some type of analysis. Group by with different aggregations, a plot... Something more complex
Other operations that I regularly perform
5. Concattenating similar dataframes. pd.concat is simple, knowing whether your columns match up, along with their types is difficult. I want a UI that shows where they match and where they dont. This normally will require an extra data cleaning step
6. Joining tables/dataframe. I want a UI that tells me Is there a natural key to join on? What percentage of rows are joined vs not matched.
Buckaroo currently does an initial version 1,2, and 4. Buckaroo allows these steps to be done in a single notebook cell, instead of many separate cells iteratively built up. There are planned features that address all of these use cases. In addition Buckaroo has been engineered to enable easy extension by users. Plug your own functions in, and make them quickly accessible.
In my view a point and click gui is the best way to quickly accomplish these tasks as opposed to a conversational AI approach. The conversational AI approach doesn't provide enough structure around common tasks.
PS:
This morning I added a "Related Projects" [3] Section to the Buckaroo docs. If Buckaroo doesn't solve your problem, look at one of the other linked projects (like Mito).
[1] https://github.com/approximatelabs/sketch https://github.com/approximatelabs/sketch
[2] https://github.com/paddymul/buckaroo https://github.com/paddymul/buckaroo
[3] https://buckaroo-data.readthedocs.io/en/latest/FAQ.html https://buckaroo-data.readthedocs.io/en/latest/FAQ.html