Astype() in Python verstehen
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.
Grundlegende Verwendung von astype()
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.
Syntax für Pandas:
DataFrame.astype(dtype, copy=True, errors='raise')
Syntax für NumPy:
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Schlüsselparameter
1. dtype
Der Zieldatentyp, in den Sie die Daten konvertieren möchten. Dies kann angegeben werden mit:
- Ein einzelner Typ (z. B. float, int, str).
- Ein Wörterbuch, das Spaltennamen Typen zuordnet (für Pandas DataFrames).
2. kopieren (Pandas und NumPy)
- Standard: True
- Zweck: Ob eine Kopie der Originaldaten zurückgegeben werden soll (falls True) oder an Ort und Stelle geändert werden soll (falls False).
3. Fehler (nur Pandas)
-
Optionen:
- 'raise' (Standard): Löst einen Fehler aus, wenn die Konvertierung fehlschlägt.
- 'ignore': Fehler stillschweigend ignorieren.
4. order (nur NumPy)
- Steuert das Speicherlayout des Ausgabearrays. Optionen:
- 'C': C-zusammenhängende Reihenfolge.
- 'F': Fortran-zusammenhängende Reihenfolge.
- 'A': Fortran-Reihenfolge verwenden, wenn die Eingabe Fortran-zusammenhängend ist, andernfalls C-Reihenfolge.
- 'K': Entspricht dem Layout des Eingabearrays.
5. Casting (nur NumPy)
- Steuert das Casting-Verhalten:
- 'nein': Kein Casting erlaubt.
- 'equiv': Nur Änderungen der Byte-Reihenfolge zulässig.
- 'sicher': Nur Umwandlungen, die Werte beibehalten, sind zulässig.
- 'same_kind': Nur sichere Casts oder Casts innerhalb einer Art (z. B. float -> int) sind erlaubt.
- 'unsicher': Jede Datenkonvertierung ist zulässig.
6. subok (nur NumPy)
- Wenn True, werden Unterklassen durchlaufen; Bei False ist das zurückgegebene Array ein Basisklassen-Array.
Beispiele
1. Grundlegende Konvertierung in Pandas
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
2. Wörterbuchzuordnung für mehrere Spalten
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
Ausgabe:
DataFrame.astype(dtype, copy=True, errors='raise')
3. Verwenden vonerrors='ignore'
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)
- Die Konvertierung schlägt für „zwei“ fehl, es wird jedoch kein Fehler ausgegeben.
4. Verwendung von astype() in NumPy
A int64 B float64 dtype: object
Ausgabe:
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
5. Casting in NumPy mit casting='safe'
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)
6. Umgang mit nicht numerischen Typen in Pandas
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)
7. Speicheroptimierung mit astype()
Code:
[1 2 3]
Ausgabe:
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> <hr> <h3> <strong>Erklärung:</strong> </h3> <ul> <li> <p><strong>Ursprüngliche Speichernutzung:</strong></p> <ul> <li>Spalte A als int64 verwendet 24 Bytes (8 Bytes pro Element × 3 Elemente).</li> <li>Spalte B als float64 verwendet 24 Bytes (8 Bytes pro Element × 3 Elemente).</li> </ul> </li> <li> <p><strong>Optimierte Speichernutzung:</strong></p> <ul> <li>Spalte A als int8 verwendet 3 Bytes (1 Byte pro Element × 3 Elemente).</li> <li>Spalte B als float32 verwendet 12 Bytes (4 Bytes pro Element × 3 Elemente).</li> </ul> </li> </ul> <h2> Der Speicherverbrauch wird durch die Verwendung kleinerer Datentypen erheblich reduziert, insbesondere bei der Arbeit mit großen Datenmengen. </h2> <h3> <strong>Häufige Fallstricke</strong> </h3> <ol> <li> <strong>Ungültige Konvertierung</strong>: Konvertieren inkompatibler Typen (z. B. Zeichenfolgen in numerische Typen, wenn nicht numerische Werte vorhanden sind). </li> </ol> <pre class="brush:php;toolbar:false">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).
Erweiterte Beispiele
1. Komplexe Datentypumwandlung
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())
2. Verwendung von astype() in NumPy für strukturierte Arrays
Index 128 A 24 B 24 dtype: int64
Ausgabe:
DataFrame.astype(dtype, copy=True, errors='raise')
Zusammenfassung
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!

Es gibt viele Methoden, um zwei Listen in Python zu verbinden: 1. Verwenden Sie Operatoren, die in großen Listen einfach, aber ineffizient sind; 2. Verwenden Sie die Erweiterungsmethode, die effizient ist, die ursprüngliche Liste jedoch ändert. 3.. Verwenden Sie den operator =, der sowohl effizient als auch lesbar ist; 4. Verwenden Sie die Funktion iterertools.chain, die Speichereffizient ist, aber zusätzlichen Import erfordert. 5. Verwenden Sie List Parsing, die elegant ist, aber zu komplex sein kann. Die Auswahlmethode sollte auf dem Codekontext und den Anforderungen basieren.

Es gibt viele Möglichkeiten, Python -Listen zusammenzuführen: 1. Verwenden von Operatoren, die einfach, aber nicht für große Listen effizient sind; 2. Verwenden Sie die Erweiterungsmethode, die effizient ist, die ursprüngliche Liste jedoch ändert. 3. Verwenden Sie iTertools.chain, das für große Datensätze geeignet ist. 4. Verwenden Sie * Operator, fusionieren Sie kleine bis mittelgroße Listen in einer Codezeile. 5. Verwenden Sie Numpy.concatenate, das für große Datensätze und Szenarien mit hohen Leistungsanforderungen geeignet ist. 6. Verwenden Sie die Append -Methode, die für kleine Listen geeignet ist, aber ineffizient ist. Bei der Auswahl einer Methode müssen Sie die Listengröße und die Anwendungsszenarien berücksichtigen.

CompiledLanguageOfferSpeedandSecurity, während interpretedLanguagesProvideaseofuseAnDportabilität.1) kompiledlanguageslikec areFasterandSecurebuthavelongerDevelopmentCyclesandplatformDependency.2) InterpretedLanguages -pythonareaToReAndoreAndorePortab

In Python wird eine für die Schleife verwendet, um iterable Objekte zu durchqueren, und eine WHHE -Schleife wird verwendet, um Operationen wiederholt durchzuführen, wenn die Bedingung erfüllt ist. 1) Beispiel für Schleifen: Überqueren Sie die Liste und drucken Sie die Elemente. 2) Während des Schleifens Beispiel: Erraten Sie das Zahlenspiel, bis Sie es richtig erraten. Mastering -Zyklusprinzipien und Optimierungstechniken können die Code -Effizienz und -zuverlässigkeit verbessern.

Um eine Liste in eine Zeichenfolge zu verkettet, ist die Verwendung der join () -Methode in Python die beste Wahl. 1) Verwenden Sie die monjoy () -Methode, um die Listelemente in eine Zeichenfolge wie "" .Join (my_list) zu verkettet. 2) Für eine Liste, die Zahlen enthält, konvertieren Sie die Karte (STR, Zahlen) in eine Zeichenfolge, bevor Sie verkettet werden. 3) Sie können Generatorausdrücke für komplexe Formatierung verwenden, wie z. 4) Verwenden Sie bei der Verarbeitung von Mischdatentypen MAP (STR, MIXED_LIST), um sicherzustellen, dass alle Elemente in Zeichenfolgen konvertiert werden können. 5) Verwenden Sie für große Listen '' .Join (large_li

Pythonusesahybridapproach, kombinierte CompilationTobyteCodeAnDinterpretation.1) codiscompiledtoplatform-unintenpendentBytecode.2) BytecodeIsinterpretedBythepythonvirtualMachine, EnhancingEfficiency und Portablabilität.

Die Keedifferzences -zwischen Pythons "für" und "während" Loopsare: 1) "für" LoopsareideAlForiteratingOvercesorknownowniterations, während 2) "LoopsarebetterForContiningUtilAconditionismethoutnredefineditInations.un

In Python können Sie Listen anschließen und doppelte Elemente mit einer Vielzahl von Methoden verwalten: 1) Verwenden von Operatoren oder erweitert (), um alle doppelten Elemente beizubehalten; 2) Konvertieren in Sets und kehren Sie dann zu Listen zurück, um alle doppelten Elemente zu entfernen. Die ursprüngliche Bestellung geht jedoch verloren. 3) Verwenden Sie Schleifen oder listen Sie Verständnisse auf, um Sätze zu kombinieren, um doppelte Elemente zu entfernen und die ursprüngliche Reihenfolge zu verwalten.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.
