this post was submitted on 22 Aug 2023
173 points (98.3% liked)
Python
6416 readers
5 users here now
Welcome to the Python community on the programming.dev Lemmy instance!
π Events
Past
November 2023
- PyCon Ireland 2023, 11-12th
- PyData Tel Aviv 2023 14th
October 2023
- PyConES Canarias 2023, 6-8th
- DjangoCon US 2023, 16-20th (!django π¬)
July 2023
- PyDelhi Meetup, 2nd
- PyCon Israel, 4-5th
- DFW Pythoneers, 6th
- Django Girls Abraka, 6-7th
- SciPy 2023 10-16th, Austin
- IndyPy, 11th
- Leipzig Python User Group, 11th
- Austin Python, 12th
- EuroPython 2023, 17-23rd
- Austin Python: Evening of Coding, 18th
- PyHEP.dev 2023 - "Python in HEP" Developer's Workshop, 25th
August 2023
- PyLadies Dublin, 15th
- EuroSciPy 2023, 14-18th
September 2023
- PyData Amsterdam, 14-16th
- PyCon UK, 22nd - 25th
π Python project:
- Python
- Documentation
- News & Blog
- Python Planet blog aggregator
π Python Community:
- #python IRC for general questions
- #python-dev IRC for CPython developers
- PySlackers Slack channel
- Python Discord server
- Python Weekly newsletters
- Mailing lists
- Forum
β¨ Python Ecosystem:
π Fediverse
Communities
- #python on Mastodon
- c/django on programming.dev
- c/pythorhead on lemmy.dbzer0.com
Projects
- PythΓΆrhead: a Python library for interacting with Lemmy
- Plemmy: a Python package for accessing the Lemmy API
- pylemmy pylemmy enables simple access to Lemmy's API with Python
- mastodon.py, a Python wrapper for the Mastodon API
Feeds
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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
I agree with all your points about Excel being capable. However, I'm struggling to think of examples where this newly announced Python integration within Excel would be helpful (with the exception of new/different visualizations) - especially for the reasons you stated about modern Excel.
Are there any use cases that you can think of where someone who knows Excel well would resort to "adding a little Python to patch up any issues"?
Probably like me. I knew just enough VBA to do what I wanted in Excel, but not enough to write it from scratch in vba or C++.
What do you mean? This new Python integration cannot accomplish the majority of things capable in VBA or C++ (or even regular Python).
I can do basic things in vba. I don't know enough to leave Excel and start writing a standalone program in vba, c++, or Python. I can learn a few commands, but I'm not going to become a programmer.
So you're saying that you're more likely to use Python in Excel than Python outside Excel?
If you're "not going to become a programmer", wouldn't it just be better to learn the extra Excel formula or two instead of learning Python, Python data structures, Pandas, etc. in addition to how all that works within Excel?
Learning how to use
HSTACK()
,VSTACK()
,XLOOKUP()
, and other newer Excel fomulas will likely be much easier than understanding how to do the equivalent in Python.I would never use Python outside of Excel just like I never use visual basic outside of Excel.
I would use it for the same reason I (rarely) use vba in Excel, some things you can't do with formulas.
Maybe some sort of "team toolbox" of logical functions or something? I've seen some nightmare shops where big reports have a page of manipulations that get copied to new reports/projects every time, and each represents some sort of canned, core business logic.
I dunno. I cant imagine how the code storage will go
The code storage for Python is no different than regular Excel functions (eg -
VLOOKUP()
,SUM()
, etc.), meaning that it is stored within an Excel cell. The only differences are that Python code is run remotely vs Excel functions running locally and the location of Python's code matters vs Excel's functions are location agnostic (ie - Python code runs in cells located left-to-right, top-to-bottom but Excel's functions can dynamically determine the calculation order/location).I'm not sure that this new Python integration changes much about this use case (except for another way to accomplish the same/similar tasks).
Could I write a Python program that does the same thing as Excel but faster?
I don't need to. It's called pandas
I hear you.
I don't know how new Excel performes and I thought it's the same as ten years ago - the version I'm trapped in. With people who obsessively try to drive it to the edge where it's not responsive on average office PCs.
But if it works well with various big spreadsheets now, it's a wonder, with how many new people start to tackle programming with Python. I obiviosly won't write a script faster than normal operational speeds of software, it's just some tables ended up that big and broken I could only open them like that. But that, I guess, is exclusion?
It's just the issue of people using a microscope as a hammer when they need to break nuts.
So, assuming you're still on Office 2010, you're missing (off the top of my head, but I believe these were all Excel 2013 or later):
A2:A300
garbage where Excel would instead just have e.g.SomeTable[Heading]
. E.g., an actual formula from a sheet I currently maintain to track my team's sprints:=XLOOKUP([@Verified],SprintMeta[Start],SprintMeta[Sprint Name],"Unknown",-1)
. Python's easier to read here, but this is honestly doing a lot while being surprisingly readable (especially if you're familiar withXLOOKUP
, which is basically how you do keyed array access in Excel)You have totally legitimate gripes about Excel; I'm not denying that. But I do think that you might be pleasantly surprised on newer versions.