Ce qui nous a apporté Pandas 1.0


Le 9 janvier, Pandas 1.0.0rc est sorti. La version précédente de la bibliothèque est 0,25.


La première version majeure contient de nombreuses grandes innovations, notamment une meilleure synthèse automatique des trames de données, davantage de formats de sortie, de nouveaux types de données et même un nouveau site de documentation.


Toutes les modifications peuvent être consultées ici ; dans l'article, nous nous limitons à une petite revue moins technique de la chose la plus importante.


Vous pouvez installer la bibliothèque comme d'habitude à l'aide de pip , mais comme au moment de la rédaction de l'article Pandas 1.0 est toujours une version candidate , vous devrez spécifier explicitement la version:


pip install --upgrade pandas==1.0.0rc0 

Attention: la version étant majeure, la mise à jour risque de casser l'ancien code!


Soit dit en passant, Python 2 a été complètement supprimé de cette version ( ce qui peut être une bonne raison de mettre à niveau - environ Transl. ). Pandas 1.0 nécessite au moins Python 3.6+, donc si vous n'êtes pas sûr, vérifiez celui que vous avez installé:


 $ pip --version pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7) $ python --version Python 3.7.5 

La façon la plus simple de vérifier la version Pandas est:


 >>> import pandas as pd >>> pd.__version__ 1.0.0rc0 

Amélioration de la synthèse automatique avec DataFrame.info


Mon innovation préférée a été la mise à jour de la méthode DataFrame.info . La fonction est devenue beaucoup plus lisible, ce qui rend le processus de recherche de données encore plus facile:


 >>> df = pd.DataFrame({ ...: 'A': [1,2,3], ...: 'B': ["goodbye", "cruel", "world"], ...: 'C': [False, True, False] ...:}) >>> df.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 3 entries, 0 to 2 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 A 3 non-null int64 1 B 3 non-null object 2 C 3 non-null object dtypes: int64(1), object(2) memory usage: 200.0+ bytes 

Sortie de table au format Markdown


Une innovation tout aussi agréable a été la possibilité d'exporter des trames de données vers des tables Markdown à l'aide de DataFrame.to_markdown .


 >>> df.to_markdown() | | A | B | C | |---:|----:|:--------|:------| | 0 | 1 | goodbye | False | | 1 | 2 | cruel | True | | 2 | 3 | world | False | 

Cela simplifie considérablement la publication de tableaux sur des sites comme Medium à l'aide de github gists.



De nouveaux types pour les chaînes et les booléens


Pandas 1.0 a également ajouté de nouveaux types expérimentaux . Leur API est susceptible de changer, utilisez-la donc avec prudence. Mais en général, Pandas recommande d'utiliser de nouveaux types là où cela a du sens.


Jusqu'à présent, le casting doit être fait explicitement:


 >>> B = pd.Series(["goodbye", "cruel", "world"], dtype="string") >>> C = pd.Series([False, True, False], dtype="bool") >>> df.B = B, df.C = C >>> df.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 3 entries, 0 to 2 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 A 3 non-null int64 1 B 3 non-null string 2 C 3 non-null bool dtypes: int64(1), object(1), string(1) memory usage: 200.0+ bytes 

Remarquez comment la colonne Dtype affiche les nouveaux types - chaîne et booléen .


La caractéristique la plus utile du nouveau type de chaîne est qu'il est possible de sélectionner uniquement les colonnes de lignes des blocs de données. Cela peut grandement simplifier l'analyse des données de texte:


 df.select_dtypes("string") 

Auparavant, les colonnes de ligne ne pouvaient pas être sélectionnées sans spécifier explicitement les noms.


Pour en savoir plus sur les nouveaux types, cliquez ici .




Merci d'avoir lu! La liste complète des changements, comme déjà mentionné, peut être consultée ici .

Source: https://habr.com/ru/post/fr483720/


All Articles