Heim >Backend-Entwicklung >Python-Tutorial >Was ist die Funktion astype() in Python?
Die Funktion astype() ist eine leistungsstarke Methode in Python, die hauptsächlich in der Bibliothek pandas zum Konvertieren einer Spalte oder eines Datensatzes in einem DataFrame oder einer Serie in einen bestimmten Datentyp verwendet wird. Es ist auch in NumPy verfügbar, um Array-Elemente in einen anderen Typ umzuwandeln.
Die Funktion astype() wird verwendet, um den Datentyp eines Pandas-Objekts (wie einer Serie oder eines DataFrame) oder eines NumPy-Arrays in einen anderen Typ umzuwandeln.
DataFrame.astype(dtype, copy=True, errors='raise')
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Der Zieldatentyp, in den Sie die Daten konvertieren möchten. Dies kann angegeben werden mit:
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)
Ausgabe:
A int64 B float64 dtype: object
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
Ausgabe:
DataFrame.astype(dtype, copy=True, errors='raise')
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Ausgabe:
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
Ausgabe:
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
A float64 B int64 dtype: object
Ausgabe:
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
Ausgabe:
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]
Vor der Optimierung (ursprüngliche Speichernutzung):
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)
Nach der Optimierung (optimierte Speichernutzung):
Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'
Ursprüngliche Speichernutzung:
Optimierte Speichernutzung:
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)
Stille Fehler mit „errors='ignore“: Mit Vorsicht verwenden, da die Konvertierung stillschweigend fehlschlagen kann.
Präzisionsverlust: Konvertierung von einem Typ mit höherer Genauigkeit (z. B. float64) in einen Typ mit niedrigerer Genauigkeit (z. B. float32).
A datetime64[ns] B bool dtype: object
Ausgabe:
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
Ausgabe:
DataFrame.astype(dtype, copy=True, errors='raise')
Die Funktion astype() ist ein vielseitiges Werkzeug zur Datentypkonvertierung sowohl in Pandas als auch in NumPy. Es ermöglicht eine differenzierte Steuerung des Casting-Verhaltens, der Speicheroptimierung und der Fehlerbehandlung. Die ordnungsgemäße Verwendung seiner Parameter, wie Fehler in Pandas und Umwandlung in NumPy, gewährleistet robuste und effiziente Datentyptransformationen.
Das obige ist der detaillierte Inhalt vonWas ist die Funktion astype() in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!