Maison >développement back-end >Tutoriel Python >Qu'est-ce que la fonction astype() en Python
La fonction astype() est une méthode puissante en Python, principalement utilisée dans la bibliothèque pandas pour convertir une colonne ou un ensemble de données dans un DataFrame ou une série en un type de données spécifique. Il est également disponible dans NumPy pour convertir des éléments de tableau en un type différent.
La fonction astype() est utilisée pour convertir le type de données d'un objet pandas (comme une série ou un DataFrame) ou un tableau NumPy dans un autre type.
DataFrame.astype(dtype, copy=True, errors='raise')
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Le type de données cible vers lequel vous souhaitez convertir les données. Cela peut être spécifié en utilisant :
import pandas as pd # Example DataFrame df = pd.DataFrame({'A': ['1', '2', '3'], 'B': [1.5, 2.5, 3.5]}) # Convert column 'A' to integer df['A'] = df['A'].astype(int) print(df.dtypes)
Sortie :
A int64 B float64 dtype: object
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
Sortie :
DataFrame.astype(dtype, copy=True, errors='raise')
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Sortie :
import pandas as pd # Example DataFrame df = pd.DataFrame({'A': ['1', '2', '3'], 'B': [1.5, 2.5, 3.5]}) # Convert column 'A' to integer df['A'] = df['A'].astype(int) print(df.dtypes)
A int64 B float64 dtype: object
Sortie :
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
A float64 B int64 dtype: object
Sortie :
df = pd.DataFrame({'A': ['1', 'two', '3'], 'B': [1.5, 2.5, 3.5]}) # Attempt conversion with errors='ignore' df['A'] = df['A'].astype(int, errors='ignore') print(df)
A B 0 1 1.5 1 two 2.5 2 3 3.5
Sortie :
import numpy as np # Example array arr = np.array([1.1, 2.2, 3.3]) # Convert to integer arr_int = arr.astype(int) print(arr_int)
[1 2 3]
Avant l'optimisation (utilisation de la mémoire d'origine) :
arr = np.array([1.1, 2.2, 3.3]) # Attempt an unsafe conversion try: arr_str = arr.astype(str, casting='safe') except TypeError as e: print(e)
Après optimisation (utilisation optimisée de la mémoire) :
Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'
Utilisation de la mémoire d'origine :
Utilisation optimisée de la mémoire :
df = pd.DataFrame({'A': ['2022-01-01', '2023-01-01'], 'B': ['True', 'False']}) # Convert to datetime and boolean df['A'] = pd.to_datetime(df['A']) df['B'] = df['B'].astype(bool) print(df.dtypes)
Erreurs silencieuses avec erreurs='ignore' : à utiliser avec prudence car la conversion peut échouer silencieusement.
Perte de précision : Conversion d'un type de précision supérieure (par exemple, float64) à un type de précision inférieure (par exemple, float32).
A datetime64[ns] B bool dtype: object
Sortie :
import pandas as pd # Original DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [1.1, 2.2, 3.3]}) print("Original memory usage:") print(df.memory_usage()) # Downcast numerical types df['A'] = df['A'].astype('int8') df['B'] = df['B'].astype('float32') print("Optimized memory usage:") print(df.memory_usage())
Index 128 A 24 B 24 dtype: int64
Sortie :
DataFrame.astype(dtype, copy=True, errors='raise')
La fonction astype() est un outil polyvalent pour la conversion de types de données dans pandas et NumPy. Il permet un contrôle précis du comportement de diffusion, de l'optimisation de la mémoire et de la gestion des erreurs. Une utilisation appropriée de ses paramètres, tels que les erreurs dans les pandas et le casting dans NumPy, garantit des transformations de types de données robustes et efficaces.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!