50% off DataCamp Premium. 700+ courses, half price. Start learning today.
Data-analyse leunt vaak sterk op de onmisbare pandas-bibliotheek. Die biedt gebruiksvriendelijke datastructuren en functies voor datamanipulatie, waarmee je tabellaire datasets efficiënt kunt verwerken. Met pandas kun je eenvoudig data importeren, opschonen, transformeren en aggregeren uit diverse bronnen, zoals CSV-bestanden, Excel-spreadsheets, SQL-databases en meer.
Wil je leren hoe je data importeert en opschoont, statistieken berekent en visualisaties maakt met pandas? Bekijk dan onze Data Manipulation with pandas-cursus.
In deze tutorial duiken we in de nieuwste iteratie van de pandas-bibliotheek en laten we met voorbeelden zien hoe je de nieuwste features gebruikt.
De langverwachte update pandas 2.0 is er eindelijk
Pandas 2.0 is uitgebracht op 3 april 2023, na drie jaar ontwikkeling. Deze nieuwste versie biedt een reeks nieuwe features, zoals verbeterde ondersteuning voor extension arrays, DataFrame-ondersteuning voor PyArrow en datetime-resoluties anders dan nanoseconden. Er zijn echter ook doorgevoerde deprecations, wat leidt tot API-wijzigingen.
Als een grote update voert versie 2.0 alle deprecations uit 1.X door. De meest recente 1.5.3-release gaf ongeveer 150 waarschuwingen. Als je code in 1.X vrij is van waarschuwingen, zou die compatibel moeten zijn met versie 2.0.
De nieuwste features in pandas 2.0 onthuld
Laten we kijken wat er nieuw is in pandas 2.0, inclusief hoe je sommige van de verbeterde features gebruikt.
Verbeterde prestaties: snellere en geheugen-efficiëntere bewerkingen
PyArrow kun je zien als de bepalende feature van deze release.
Pandas is oorspronkelijk ontwikkeld met NumPy-datastructuren voor het geheugenbeheer, maar gebruikers kunnen nu kiezen om PyArrow te gebruiken als onderliggende geheugenindeling.
PyArrow is een Python-bibliotheek (gebouwd boven op Arrow) die een interface biedt voor het verwerken van grote datasets met Arrow-geheugenstructuren, evenals tools voor serialisatie, compressie en integratie met andere dataverwerkingssystemen zoals Apache Spark en Apache Parquet.
Arrow is een open-source en taalonafhankelijk kolomgeoriënteerd dataformaat om data in het geheugen te representeren. Het is geschreven in C++, maar is taalonafhankelijk.
Inefficiënt geheugengebruik door de oorspronkelijke NumPy-back-end is een veelvoorkomend probleem dat gebruikers ertoe aanzet om alternatieve dataverwerkingstools te verkennen, zoals Spark, Dask, Ray, enz. Door het geheugenverbruik te verlagen via de PyArrow-back-end kan pandas gebruikers nu een gestroomlijndere ervaring bieden en efficiënter laten werken.
Benchmarks die mean- en replace-bewerkingen vergelijken met NumPy- en PyArrow-back-end, naast Polars

Polars is een op Rust gebaseerde bibliotheek voor datamanipulatie in Python met een DataFrame-API vergelijkbaar met pandas, maar met betere prestaties en schaalbaarheid voor grote datasets. Wil je meer weten over de Polars-bibliotheek? Bekijk dan de officiële website.
Hier is de code om een CSV-bestand te lezen met PyArrow als back-end:
pd.read_csv(my_file, dytpe_backend='pyarrow')
Wil je efficiënte technieken in pandas leren om je Python-code te optimaliseren? Bekijk dan de Writing Efficient Code with pandas-cursus op DataCamp.
Nullable datatypes zijn nu mogelijk
Omgaan met missende waarden in pandas was in het verleden lastig doordat NumPy voor bepaalde datatypes geen null-waarden ondersteunt. Zo staan NumPy-integer-dtypes geen null-waarden toe. Wanneer een null-waarde in een integerkolom voorkwam, werd de kolom automatisch geconverteerd naar een float-dtype, wat onwenselijk is.
Pandas 1.0 introduceerde nullable dtypes, maar die vereisten wat extra moeite om te gebruiken. Met de nieuwste versie kun je bij het inlezen van data in een DataFrame aangeven dat je nullable dtypes wilt gebruiken, waardoor dit veel eenvoudiger wordt.
pd.read_csv(my_file, use_nullable_dtypes=True)
Copy-on-Write-prestatieverbetering
Copy-on-Write is een geheugenoptimalisatietechniek die door pandas wordt gebruikt om prestaties te verhogen en het geheugenverbruik te minimaliseren bij het werken met grote datasets. Het maakt pandas meer vergelijkbaar met Spark en hoe lazy operations in Spark worden uitgevoerd. Lazy operations zijn bewerkingen die niet meteen worden uitgevoerd, maar wachten tot er een actie wordt aangeroepen om de berekening te starten. Ze heten "lazy" omdat ze de uitvoering uitstellen tot het nodig is om het eindresultaat te berekenen en terug te geven.
Het basisidee is dat er een verwijzing naar de oorspronkelijke data wordt gemaakt wanneer je een kopie van een pandas-object maakt, zoals een DataFrame of Series, en dat er pas een nieuwe kopie wordt aangemaakt wanneer je wijzigingen doorvoert.
Deze aanpak maakt het mogelijk dat meerdere kopieën van dezelfde data hetzelfde geheugen gebruiken totdat er wijzigingen worden aangebracht, waardoor overbodig kopiëren wordt voorkomen en het geheugenverbruik aanzienlijk daalt, met betere prestaties als resultaat.
NumPy-numerieke types ondersteund door Index
In pandas 2.0 is de Index-functionaliteit uitgebreid met NumPy-numerieke dtypes, zoals int8, int16, int32, uint8, uint16, uint32, uint64, float32 en float64, terwijl eerder alleen int64, uint64 en float64 werden ondersteund.
Dankzij deze update kun je indexen met lagere bitgrootte maken, bijvoorbeeld 32-bit indexen, bij bewerkingen die voorheen 64-bit indexen opleverden.
Alle numerieke indexen worden nu weergegeven als Index met een bijbehorend dtype.
pip-extras installeren
Door tijdens de installatie van pandas met pip extras op te geven, kun je extra sets optionele afhankelijkheden installeren. Bijvoorbeeld:
pip install "pandas[performance, aws]>=2.0.0"
Dit installeert de optionele afhankelijkheden performance en aws. De installatierichtlijnen voor pandas geven een lijst van beschikbare extras. Dit omvat: [all, performance, computation, fss, aws, gcp, excel, parquet, feather, hdf5, spss, postgresql, mysql, sql-other, html, xml, plot, output_formatting, clipboard, compression, en test] Vergeet niet om aanhalingstekens (" ) toe te voegen.
Niet-nanoseconde-resolutie in Timestamps
Pandas had lange tijd de beperking dat timestamps alleen in nanoseconde-resolutie werden weergegeven. Daardoor was het niet mogelijk om data voor 21 september 1677 of na 11 april 2264 te representeren. Dit leverde problemen op voor onderzoekers die tijdreeksdata over lange periodes analyseerden.
Met de release van pandas 2.0 is er ondersteuning toegevoegd voor andere resoluties, zoals seconde, milliseconde en microseconde. Deze verbetering maakt tijdsbereiken tot +/- 2,9e11 jaar mogelijk, waarmee de meeste use-cases worden gedekt.
Consistente parse-indeling voor datetimes
Voorheen leidde de functie to_datetime() in pandas het formaat van elk element afzonderlijk af. Dat kon problematisch zijn wanneer je een consistent formaat verwachtte, maar de functie tussen elementen van formaat wisselde.
Hoewel deze aanpak geschikt was voor gevallen met gemengde datumformaten, veroorzaakte het voor veel gebruikers problemen.
In pandas 2.0 is het parse-proces aangepast om een consistent formaat te gebruiken, bepaald door de eerste niet-NA-waarde. Je kunt nog steeds een formaat opgeven; in dat geval wordt dat formaat gebruikt.
Oud gedrag:
ser = pd.Series(['13-01-2000', '12-01-2000'])
pd.to_datetime(ser)
Out[2]:
0 2000-01-13
1 2000-12-01
dtype: datetime64[ns]
Nieuw gedrag:
ser = pd.Series(['13-01-2000', '12-01-2000'])
pd.to_datetime(ser)
Out[43]:
0 2000-01-13
1 2000-01-12
dtype: datetime64[ns]
Voorbeelden overgenomen uit de officiële documentatie.
Compatibiliteit en migratie
Backward-incompatibele API-wijzigingen zijn aanpassingen in de API van een bibliotheek die bestaande code of integraties kunnen breken. Dit kan het verwijderen of hernoemen van functies, klassen of parameters omvatten, of het wijzigen van verwacht gedrag. Bekijk de lijst met alle breaking changes in pandas 2.0 in de documentatie over backward-incompatibele API-wijzigingen.
Om de pandas-bibliotheek te updaten, voer je simpelweg deze opdracht uit in je terminal of notebook:
pip install -U pandas
Community en support
Bekijk de volledige releasenotes voor pandas 2.0
Je kunt ook onze pandas data science-cheatsheet gebruiken als snelle gids voor de basis van de Python-dataanalysebibliotheek, inclusief codevoorbeelden.

Cheatsheet van DataCamp. Bron
Een grote groep bijdragers en een kleiner team van maintainers hebben samen pandas ontwikkeld, een open-sourceproject dat door de community wordt aangedreven. De leiding van pandas zet zich in voor een positieve, inclusieve en open community. Wil je meedoen aan deze community? Bekijk dan de Contributor community guide van pandas.
Conclusie
Pandas 2.0 is een belangrijke update van de populaire data-analysebibliotheek, met nieuwe features zoals betere prestaties via PyArrow, nullable datatypes, copy-on-write-optimalisatie, uitgebreidere ondersteuning voor NumPy-numerieke types in indexen en datetime-resoluties buiten nanoseconden.
Met deze update kan pandas grotere datasets aan met efficiënter geheugengebruik, wat zorgt voor een gestroomlijndere ervaring voor gebruikers.
Om van deze nieuwe features te profiteren, kun je eenvoudig je pandas-bibliotheek updaten met het commando pip install -U pandas. De pandas-community blijft support en resources bieden, waaronder cursussen op DataCamp, om je te helpen je data-analysevaardigheden te verbeteren.
Hier zijn een paar uitstekende tutorials die je kunnen helpen op je pad om data-analyse te leren.
Onderwerpen
