[PYTHON] Ajouts clés aux pandas 1.1.0 et 1.0.0

À propos de cet article

pandas a été mis à jour de la version 1.0 à 1.1.0 le 28 juillet 2020. Cet article résume les principaux ajouts de 1.1.0 et les principaux ajouts de la Nth brasserie, mais la mise à jour de 0.25.3 à 1.0.0 en janvier 2020.

Information officielle

https://pandas.pydata.org/pandas-docs/dev/whatsnew/v1.0.0.html

https://pandas.pydata.org/pandas-docs/dev/whatsnew/v1.1.0.html

Prière de se référer à.

Environnement de vérification

La version 1.0 est vérifiée avec 1.0.5 et 1.1 avec 1.0.0. 0,25 est vérifié avec 0,25,1.

1.0

pd.NA Jusqu'à 0,25, il existe différentes valeurs telles que «np.nan» pour float, «np.nan» ou «None» pour objet (chaîne de caractères) et «pd.NaT» pour les données de temps. Ça a été utilisé.

Dans la version 1.0, «pd.NA» a été introduit pour représenter les valeurs manquantes.

Par exemple

pd.Series([1, 2, None], dtype="Int64")

Le troisième élément de est «np.nan» dans la version 0.25, mais devient «pd.NA» dans la version 1.0.

Jusqu'à 0.25, la colonne numérique manquante (np.nan) était forcée à float64, mais dans 1.0, il est possible de l'appeler une colonne de type Int8 avec pd.NA.

type de chaîne (type StringD)

Un type chaîne (type StringD) qui représente Series (colonne DataFrame) de données de chaîne a été ajouté. Lorsqu'il s'agit d'une série (ou colonne) d'une chaîne de caractères, il est recommandé d'utiliser le type chaîne.

Jusqu'à 0,25, c'était le type d'objet qui représentait la série (ou colonne) contenant des données de chaîne, donc

pd.Series(['abc', True, 'def'], dtype="object")

Je ne pouvais qu'exprimer que (mélange de lettres et de booléen) était autorisé,

À partir de 1.0

pd.Series(['abc', 'def'], dtype="string")

Si tel est le cas, la série (ou la colonne) n'est autorisée que pour les chaînes de caractères.

pd.Series(['abc', True, 'def'], dtype="string")

C'est une erreur.

pd.Series(['abc', 'def', None], dtype="string")

Le troisième élément de est «pd.NA».

pourtant

pd.Series(['abc', True, 'def'])

(Aucun dtype spécifié) est le type d'objet comme auparavant, et cette expression est également autorisée.

type booléen (booleanDtype)

Un type qui représente des données booléennes: un type booléen (booleanDtype) a été ajouté. Il est recommandé d'utiliser le type booléen lorsqu'il s'agit de séries (ou colonnes) booléennes (vrai ou faux).

pd.Series([True, False, 0], dtype="booleal")

C'est une erreur. (Si aucun dtype n'est spécifié, il est acceptable sans erreur. Si `dtype =" bool ", 0 est converti en False)

Concernant le traitement de la valeur manquante

pd.Series([True, False, np.nan])
pd.Series([True, False, None])

Le troisième élément de est np.nan et None, respectivement.

pd.Series([True, False, np.nan], dtype="boolean")
pd.Series([True, False, None], dtype="boolean")

Ensuite, le troisième élément est pd.NA.

pd.Series([True, False, np.nan], dtype="bool")
pd.Series([True, False, None], dtype="bool")

Dans le cas de, le troisième élément est respectivement Vrai et Faux.

fonction convert_dtypes

df = pd.DataFrame({'x': ['abc', None, 'def'],
                   'y': [1, 2, np.nan],
                   'z': [True, False, True]})

Est la colonne x: objet, la colonne y: float64, la colonne z: bool. Même si le type chaîne et le type booléen ont été créés ...

Donc,

df.convert_dtypes()

Ensuite, x colonne: chaîne, y colonne: Int64, z colonne: booléen sont convertis. None et np.nan sont désormais pd.NA.

Les fonctions NA et type ci-dessus sont des fonctions expérimentales et sont sujettes à changement.

argument ignore_index

L'argument ignore_index a été ajouté à DataFrame.sort_values () et DataFrame.drop_duplicates (). Avec ignore_index = True, les index tels qu'après le tri sont réaffectés dans l'ordre à partir de 0. Bonne nouvelle pour les ennuis des pandas index

1.1

dtype="string", astype("string")

pd.Series([1, "abc", np.nan], dtype="string")
pd.Series([1, 2, np.nan], dtype="Int64").astype("string")

Tous les éléments sont dans des chaînes. Jusqu'à 1.0, une erreur se produit si tous les éléments ne sont pas des chaînes ou nan.

groupby

df = pd.DataFrame([[1, 2, 3], [1, None, 4], [2, 1, 3], [1, 2, 2]], columns=["a", "b", "c"])

df.groupby(by=["b"], dropna=False).sum()

Le résultat de

     a  c
b        
1.0  2  3
2.0  2  5
NaN  1  4

La valeur de la colonne spécifiée par par est agrégée même si la ligne de NA est attachée. Comportement similaire au dplyr group_by de R.

Si dropna = True ou non spécifié, les lignes dont la valeur de colonne spécifiée par est NA ne sont pas agrégées.

Recommended Posts

Ajouts clés aux pandas 1.1.0 et 1.0.0
Comment utiliser les pandas Timestamp et date_range
Ajouter des totaux aux lignes et aux colonnes avec des pandas
Comment utiliser Pandas 2
Convertir 202003 en 2020-03 avec les pandas
installation de jupyter et pandas
index et réindexation des pandas
pandas rééchantillonner et rouler
Moyenne et liste des pandas
Comment extraire des valeurs Null et des valeurs non Null avec des pandas
Arrêtez l'authentification par mot de passe SSH et passez complètement à l'authentification par clé
[Python] Convertir la liste en Pandas [Pandas]
Pour aller et venir entre python standard, numpy, pandas ①
Comment utiliser Pandas Rolling
React and Flask to GCP
Comment créer une trame de données et jouer avec des éléments avec des pandas
Exporter la trame de données pandas vers Excel
[Python] Comment ajouter des lignes et des colonnes à une table (pandas DataFrame)
Comment installer des pandas sur EC2 (Comment gérer MemoryError et PermissionError)
Je souhaite utiliser à la fois la clé et la valeur de l'itérateur Python
Comment formater un tableau à l'aide de Pandas Appliquer, pivoter et permuter le niveau
Python 3.6 sous Windows ... et vers Xamarin.
[Introduction à Python3 Jour 1] Programmation et Python
Comment installer et utiliser Tesseract-OCR
Comment écrire sobrement avec des pandas
[Python] Comment utiliser la série Pandas
Scraping, prétraitement et écriture dans postgreSQL
Etosetra lié à Pandas read_csv
Précautions lors de l'utilisation de codecs et de pandas
[Introduction à Python] Utilisons les pandas
Comment installer et configurer Blackbird
Comment utiliser .bash_profile et .bashrc
[Pandas] Trouvez le quadrant et détectez la valeur aberrante
Comment installer et utiliser Graphviz
Opérations clés que vous souhaitez connaître
Je veux faire ○○ avec les Pandas
Journalisation Python et vidage vers json
[Introduction à Python] Utilisons les pandas
Sélénium et python pour ouvrir Google
Ignorer # ligne et lire avec les pandas
[Introduction à Python] Utilisons les pandas
Résoudre des puzzles et 15 puzzles
Comment obtenir un nom de colonne et un nom d'index spécifiques avec Pandas DataFrame
Joindre les données avec la clé principale (obligatoire) et la sous-clé (facultative) dans les pandas Python