- cross-posted to:
- python@programming.dev
- cross-posted to:
- python@programming.dev
Microsoft is bringing popular programming language Python to Excel. A public preview of the feature is available today, allowing Excel users to manipulate and analyze data from Python.
You won’t need to install any additional software or set up an add-on to access the functionality, as Python integration in Excel will be part of Excel’s built-in connectors and Power Query. Microsoft is also adding a new PY function that allows Python data to be exposed within the grid of an Excel spreadsheet. Through a partnership with Anaconda, an enterprise Python repository, popular Python libraries like pandas, statsmodels, and Matplotlib will be available in Excel.
But why? Excel is a shit way to work with big amounts of data due to it’s own format’s complexity and bloated software. It’s welcome to implement python, but that’s not what holds it down. Opening a big csv would crash it on the same machine that loads it with a python IDE in seconds. It’s not made for this. It’s like, nice, but the volume of information you need to make it matter would break Excel in halves.
This feels like a really dated take to me. Leaving aside whether this was true in the past, in 2023, Excel is happy to open absolutely gargantuan files, and it’s quite speedy once it’s done so. You can even directly tie it to a database via ODBC if you want, and that works (albeit it obviously flattens the data out in the process, so goodbye foreign keys in any real sense). It also has tons of very easy-to-use data manipulation tools (pivot tables, tables in general, data extrapolation, graphs, etc.) that end up being wonderful complements to something like Python.
Could you write a Python program that would run faster than pure Excel and do the same thing? I mean, probably (although Excel’s core execution engine is honestly pretty freaking fast). But could you write it as quickly? Maybe, maybe not. And certainly someone who knows Excel well would have an easier time adding a little Python to patch up any issues than rewriting the whole thing from scratch.
tl;dr I think you’re not being accurate about contemporary Excel, and I separately suspect you’re not really the target audience here
Could I write a Python program that does the same thing as Excel but faster?
I don’t need to. It’s called pandas