skimpy icon indicating copy to clipboard operation
skimpy copied to clipboard

I integrated Skimpy with Buckaroo (a datatable UI)

Open paddymul opened this issue 10 months ago • 2 comments

I created Buckaroo to better visualize dataframes in jupyter. Buckaroo has a modern, performant UI that lets you scroll through tables, sort by column, and see summary stats.

Buckaroo is extensible with your own styling and post processing functions.

To integrate skimpy, I modified _skim_computation so it returns a dictionary of dataframes instead of Table objects. Then I hooked these into post processing functions.

Here is a video showing the integration. Video demonstrating the integration of Buckaroo and SkimPy https://www.youtube.com/watch?v=1-xha8F1kko

The Skimpy-Buckaroo example notebook

paddymul avatar Feb 26 '25 21:02 paddymul

This is very cool! I ran the main example just fine. Would you like me to change the internals of skimpy to make it easier for you to have a productionised integration option for people to get a skim summary when using buckaroo? I'm up for that. I did wonder if you could hook buckaroo directly in from skim_get_data()? Only other thought is it's not clear how to get to the summary tables unless you already know where to click.

aeturrell avatar Mar 25 '25 22:03 aeturrell

I'm glad this worked for you. I just played with skim_get_data() a little bit. It is indeed cleaner, but there are a couple of glitches

def get_skim_df_dict(df):
    nested_dicts = skimpy.skim_get_data(df)
    ret_dfs = {}
    for k, v in nested_dicts.items():
        try:
            ret_dfs[k] = pd.DataFrame(v)
        except Exception as e:
            print(k, e)
            
    return ret_dfs

Throws the following errors

Data Summary If using all scalar values, you must pass an index
Data Types If using all scalar values, you must pass an index
Categories 'set' type is unordered

I think it would be an improvement if every value returned from skim_get_data could be instantiated as a dataframe.

paddymul avatar Mar 26 '25 12:03 paddymul