HNHacker News
TopNewBestAskShowJobs

aarondia

209 karma · joined September 8, 2019

Building https://trymito.io/
submissionscomments
aarondia··on Excel Never Dies
We're still exploring the business model to support the project. Right now, Mito is free to trial, and we're experimenting with a subscription plan somewhere in the range of $10 per month. I'd say about half of our users are using it for free and half of them are on some sort of subscription.

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!

aarondia··on Excel Never Dies
There's a bunch of ways that Mito and Visidata are different. The two largest probably being:

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.

aarondia··on Excel Never Dies
Feel free to Twitter DM me @_aaronDR, would love to hear about what you're building + get you set up with Mito :)
aarondia··on Excel Never Dies
That's a good point -- and maybe horrendous was too strong of a word. It's actually been really interesting talking to people who come from the Excel world vs the Python world first. There's a group of people we've ran into who have never used Excel before, and for them, you're right, giving them a spreadsheet interface to write formulas and manipulate their data is actually a huge disadvantage.

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.

aarondia··on Excel Never Dies
Excel, and more importantly, the spreadsheet is the best way to build intuition for a dataset, hands down. The alternatives, especially when it comes to Python and the default pandas output in a Jupyter Notebook are horrendous.

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.

aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
Good catch. There's another more detailed response I just left to a similar comment, but the TLDR is that we do some logging of metadata of the dataframes passed to the tool, and what features are used.

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!

aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
Thanks for that callout. We appreciate the perspective and will work on adding more disclosures of where logging does occur, making it easier for the user to opt out, and review what we are logging and how we can reduce it. I think your analysis is correct, but as a summary: we log the email provided by the user when they first create a mitosheet, the size of the dataframe, the header names of the dataframe, and then the interactions with the UI.

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.

aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
The merging docs are only trumped in unintuitivenes by the .iloc docs :)
aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
Thanks for both of those tips, and totally understand the concerns that come along with it. Will push a fix right now!
aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
Mito is not currently open source, although it is available through PyPI. You can follow our installation instructions https://docs.trymito.io/getting-started/installing-mito to get setup locally.

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.

aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
Currently, Mito only works in Juptyer Lab version 2.0. We don't work in either Jupyter Notebooks, Jupyter Lab 3.0, or Google Collab. However, we'd love to expand to those in the future.

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.

aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
There's two types of translations that occur in Mito, writing spreadsheet formulas, and then everything else (merging, pivoting, etc.)

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.

aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
Thanks -- definitely agree. Grouping/Pivot Tables was one of the first feature we added because the earliest users were showing us Jupyter Notebooks full of pandas pivot tables. But when they had small datasets, they'd always use Excel instead because its so much easier using their interface.
aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
We are! We started working on it when school moved online due to Covid, and have been working on it full time since graduation.
aarondia··on Show HN: Mito – Write Python/Pandas faster by editing a spreadsheet, in Jupyter
Hi HN! I'm here with my co-founders (narush + jacobdi) to show you Mito (https://trymito.io/) — a point-and-click data science Jupyter Lab extension that automatically turns your analysis into Python.

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.

[0] https://docs.trymito.io/getting-started/installing-mito

← PreviousPage 3 of 3