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 à.
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.
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.
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.
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.
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