Today the pandas project announced the release of pandas 1.0.0.
For more on what’s changed, read through the extensive release notes. We’re particularly excited about Numba-accelerated window operations and the new nullable boolean and string data types. This post will focus on how Anaconda helped pandas get to 1.0.
Anaconda is proud to have been one of pandas’ longest-running Institutional Partners by employing pandas maintainers to spend some or all of their time working on pandas. Pandas is a large project that’s central to Python’s growth in popularity. Managing that project, with an emphasis on community involvement, is a mammoth task that would be difficult to achieve by volunteers alone. Having maintainers who can reliably dedicate blocks of time to maintenance and larger tasks ensured pandas health over the years.
Beyond just paying people to work on pandas (and other open source projects), Anaconda connects its customers, who have demanding and novel use cases, with the pandas developers. One of the challenges of developing an open-source library is knowing who’s actually using it and how it’s being used. There are institutions who can’t or won’t announce that they’re using pandas on a public mailing list, but have interesting challenges. As a leader in this space Anaconda has existing relationships with many groups and is able to make connections where appropriate.
One of these connections led to what’s probably the biggest theme in pandas development over the last couple years: the introduction of extension data types. This started out as a simple observation from an Anaconda customer: they found working with a particular type of data, which NumPy doesn’t natively support, slow and error-prone. Pandas already had some ad-hoc mechanisms for extending NumPy’s type system, so they wondered if pandas could add a new extension for this type of data.
The pandas development team deemed the use case a bit too niche for inclusion in pandas itself, but were happy to support it by defining the extension interface: a way for 3rd party libraries to implement their own custom data types. By connecting a customer with a real-world use case to the pandas development team, and by funding pandas developers to work on it, Anaconda helped solve some of the longest-standing issues in pandas. This work led directly to the new nullable integer, boolean, and string data types.
For more on what pandas 1.0 means to the pandas development team, see the 1.0 announcement on the pandas blog.
Pandas 1.0 is available now, and can be installed via Anaconda with the simple command conda install pandas.