You can use Low Code Python in Jupyter (Updated)
I started using Python for data science about a year ago. On day one, I spent the first four hours figuring out how to access Python. It turns out its a lot easier to use your terminal to wipe your hard drive than it is to download Python.
Note: This is an updated version of an older blog I wrote, if you want to read a newer blog I wrote click here.
Opening a Jupyter Notebook for the first time is a weird experience. It looks old — not vintage — old. The combination of grey, white, tan is humbling. You definitely feel on your own and the interface screams “you better learn to code.”
So I did. A combination of Kaggle, YouTube videos (shout out to the Data Professor) and harassing my data scientist friends (shout out to my friends) got me to a pretty comfortable place with Pandas. I understood the capabilities that I had in the Pandas tool belt and I was able to plot a course of action for many tasks.
But I quickly approached a wall. For the life of me, I couldn’t remember the syntax for a Pandas pivot… or a merge… or a filter…. or changing a data type…. or my sister’s birthday (I know it’s always on a Wednesday). Pandas is not the hardest syntax for a computer language by any stretch, but it can still give grief to intermediate and advanced users.
Along my Python journey, I found some helpful tools that save me time on syntax. I will share them here.
BambooLib is an extension for Jupyter. You can call it into your notebook by pip installing it and then running these commands:
import bamboolib as bam
import pandas as pd
df = pd.read_csv(bam.titanic_csv)
df
Bamboolib allows you to do simple pandas data transformations with a point and click interface. For example, instead of needing to write the code to change the header name for a column, you can use the menu below:
Bamboolib provides a similar interface for joining dataframes, as well as pivoting, calculating prediction scores etc.
Bamboolib uses Plotly to create interactive charts much faster than coding them by hand. Here is their demo video on visualizations:
Bamboolib is a great tool for those who want to access pandas quickly.
Lux:
Lux doubles down on the visualizations aspect of Python. Instead of giving you an interface to configure you charts, Lux will automatically suggest charts that can be made from your data and allow you to select them. This cuts down on the time it takes to generate charts, as well as the pre-processing that goes into visualizing your data.
Below you can see how how Lux attaches to any of your dataframes and automatically gives you a menu of pre-maid charts to choose from.
Importing Lux is just two commands:
import lux
import pandas as pd
*** Disclaimer: I am one of the builders ***
I made Mito with two friends from college. One is my twin brother, so I’ve known him since at least high school.
I had a lot of spreadsheet experience before using Pandas, so the mental model of doing data transformations and analysis in a spreadsheet made sense to me.
Mito is intended to be a spreadsheet interface for Pandas. Every edit you make in the interface will generate the equivalent code for you in the cell below.
Mito is a Jupyter Extension, so all you have to is install the extension first:
python -m pip install mitoinstaller
python -m mitoinstaller install
Then import Mito into your notebook:
import mitosheet
mitosheet.sheet()
You can call a dataframe into the mitosheet or upload one of your local files. Mito will automatically turn your file into a dataframe.
Within Mito, you can
- Filter
- Pivot
- Merge
- Clean
- Use Formulas
- Create Graphs
- and more!
And each of these edits generates the equivalent code!
And to put a nice bow on it, after a few months of working on Mito, the Data Professor even let us demo it on his channel:
I hope these tools are helpful. They definitely were for me. In future blog posts, I want to dive in on how I think Python is becoming more visual and more relevant to non-technical audiences.
Please reach out if you found anything I had to say interesting: jake@sagacollab.com
::))