Programmering

Pandas 1.0 bringer store ændringer

Pandas, dataanalysebiblioteket for Python, har endelig nået en 1.0-frigivelseskandidat. Pandas 1.0 fjerner en hel del forældet funktionalitet og kræver Python 3.6 eller bedre.

Pandas blev oprettet til at arbejde let med data i strukturerede formater, såsom tabeller, matricer og tidsseriedata. Pandas formørker meget af funktionaliteten i R's dataframes og fungerer godt sammen med andre videnskabelige databiblioteker i Python-verdenen.

Med Pandas 1.0 introducerer skaberne af Pandas en lang række banebrydende ændringer, der har været i værket i nogen tid nu. Her er en oversigt over de mest betydningsfulde, og hvordan man håndterer dem fremover.

Pandaer kræver Python 3.6.1 eller højere

Den største ændring i Pandas 1.0 er at droppe understøttelse af alle versioner af Python tidligere end Python 3.6.1. Pandas droppede støtte til Python 2 og forpligtede sig udelukkende til Python 3 fra 2019, så dette er for det meste en forbedring af en eksisterende politik.

Projektet har også en ny supportpolitik for fremtidige versioner af Pandas. Ethvert fald i support til en version af Python vil blive rullet ud i større nye versioner af Pandas (2.0, 3.0 osv.). Mindre udgivelser udfases funktioner, men fjerner dem ikke; større udgivelser fjerner funktioner.

Pandas nye NA-værdi

Tidligere versioner af Pandas brugte forskellige typer til at repræsentere manglende data afhængigt af containertypen - en til datetime-typer, en til objekter osv. Alle disse flettes til en enkelt manglende datatype kaldet NA. Lige nu er support til NA begrænset til et par objekttyper, og det betragtes som eksperimentelt, så det skal endnu ikke bruges i produktionen.

API-inkompatibiliteter

På grund af antallet af ændringer til Pandas 1.0 er nogle af Pandas API'er nu bagudkompatible. Dette inkluderer ændringer i adfærd fra mange almindelige elementer:

  • Det DataFrame type
  • pandaer.array
  • arrays.IntegerArray

Mange af disse uforenelige vil give advarsler, men det er bedst at teste eksisterende Pandas-scripts side om side med deres Pandas 1.0-kolleger for at se, hvordan de fungerer.

Forældede funktioner i Pandas 1.0

Pandas's dokumentation viser alle de funktioner, der skal udfases, men ikke fjernes i Pandas 1.0. Nogle af dem er simpelthen blevet omdøbt eller reorganiseret, såsom testmodulet, mens andre ændrer brugen af ​​visse funktionsparametre. I et par tilfælde, som med Series.item () og Index.item (), funktioner er reddet fra afskrivning og vil fortsat være tilgængelige.

Hvis du bruger en version af Pandas tidligere end 0,25, anbefaler skaberne af Pandas at migrere til Pandas 0,25først, sørg for at al Panda-afhængig kode opfører sig som forventet,derefter migrerer til Pandas 1.0. Dette er for at sikre, at enhver kode, der bruger forældet funktionalitet, bliver markeret.

Funktioner fjernet i Pandas 1.0

Nogle vigtige Pandas-funktioner er blevet fjernet helt i Pandas 1.0:

  • SparseSeries og SparseDataFrame. Brug Serie eller DataFrame med sparsevaluer i stedet.
  • Matplotlib enhed registrering. Dette er for at forhindre, at Matplotlib påvirkes, når du importerer Pandas.
  • Mange andre funktioner, der tidligere blev udfaset.

Igen er dette en anden grund til at teste Pandas 1.0-frigivelseskandidaten side om side med din eksisterende Pandas-installation og sikre, at dine scripts opfører sig som beregnet.

Installation af Pandas 1.0

Pandas 1.0 kan installeres direkte i Python ved hjælp af Pip-pakkehåndtering ved at skrive pip installere pandaer. Pandas 1.0 er også tilgængelig som en del af Anaconda Python-distributionen til videnskabelig computing.

I alle tilfælde er det bedst at installere Pandas i et virtuelt miljø, især hvis du vil køre tests af Pandas 1.0-scripts side om side med deres tidligere versioner.