We're also considering open sourcing the tool, and doing the classic Enterprise Sales / consulting / other value add services on top.
If you have ideas about which direction to take it, would love to hear!
209 karma · joined September 8, 2019
We're also considering open sourcing the tool, and doing the classic Enterprise Sales / consulting / other value add services on top.
If you have ideas about which direction to take it, would love to hear!
1) Mito is an extension to JupyterLab whereas Visidata is a CLI tool. As a result, Mito is a react frontend that is more of a traditional Excel-styled spreadsheet interface. You can use your mouse to perform point-and-click transformations, like writing configuring pivot tables or writing spreadsheet formulas.
2) Mito generates Python/pandas code for every edit the the user makes. So users are generating a script to manipulate their dataframes, running that script, and then continuing to use their dataframes throughout the analysis. People use Mito in a Jupyter notebook the way that they use pandas code, multiple times throughout their analysis, interspersed with graphing, ML, etc.
I think the way that Mito tries to walk the line is by making the Python code visible for the user to see what the equivalent Python looks like + easily usable in your analysis, but also completely generated for you. So hopefully, we're not introducing the confusion of pandas into your workflow.
Where Excel falls short, is data size limitations + auditability. Putting more than 1M rows of data into Excel is not possible, and once you get into the low 100K's, it becomes almost unbearable. And handing off an Excel workbooks to a colleague is handing them hours of cell dependency tracing. On the other hand, data size + auditability are the super powers of Python data analysis.
I've been building a Python package, Mito (https://trymito.io/), its an interactive spreadsheet that automatically converts your spreadsheet analysis to the equivalent pandas code. You can write spreadsheet formulas, merge datasets, create pivot tables, etc. And because its implemented in Python, you can manipulate datasets with 10M rows of data with no problem. Our goal is to bring the intuitiveness of Excel data manipulation to Pandas.
If you're interested in using the tool without any logging, just let us know and we can make sure to turn it off for you!
For our current users who have told us that they are not comfortable with logging, we have been able to turn off logging for their specific accounts. So if you're interested in continuing to checkout the tool while we make those improvements, just let us know.
Or if you don't have Jupyter already set up on your computer, we have a hosted version of Jupyter Lab that you can make an account on.
Since we only support Jupyter right now, about half of the early Mito users are using it locally and the other half are using it on a hosted version of Jupyter Lab, which just makes it really easy to get setup without worrying about Python installations.
For the spreadsheet formula part, we parse the formula in the Jupyter Python kernel and convert it to Pandas code. We actually found a bit of a trick to make this easier. TLDR: We defined Python functions that have the same name as the spreadsheet formulas, it helps us avoid building writing a formal language grammar + syntax tree. If you're interested in reading about it a bit more, we actually have a short blog post that you can checkout: https://trymito.io/blog/transpiler
The second type of translation (merging, pivoting, etc) sends a message to the backend with the parameters configured from the point and click tool. And then executes the equivalent Pandas code in the Python kernel and writes the code to the Jupyter Cell.
We started building Mito 6 months ago after finishing up undergrad engineering + business school (aka Excel School). We became comfortable doing data analysis in visual environments, but were held back by Excel's 1M row limit + the inability to create repeatable processes. Doing analyses in Python was wayyy more powerful, but also required tons of trips to Stack Overflow + pandas documentation.
After a few months of building, pivoting (our vision) + lots of refactoring, Mito now supports writing spreadsheet formulas, pivoting (dataframes), merging, saving + applying macros, and the tiniest bit of graphing. And it generates the equivalent pandas code in real time for all of it :)
You can download Mito by following our always-WIP documentation [0]. We'd love to hear your first impressions of the tool (especially if you download it) + your experiences in/building for the data science/analytics community.