Warum werden Strings in einem DataFrame als Objekte gespeichert?
Obwohl DataFrame-Spalten, die Strings enthalten, explizit in den String-Datentyp konvertiert werden, ist dies die Pandas-Bibliothek von Python kann sie dennoch als Objekte melden. Diese Diskrepanz entsteht durch die zugrunde liegenden Datenstrukturen von NumPy.
NumPy verwendet ndarrays, um Datenarrays zu speichern, wobei jedes Element in einem ndarray eine feste Anzahl von Bytes hat. Bei Ganzzahlen (int64) und Gleitkommazahlen (float64) belegt jedes Element 8 Bytes. Allerdings haben Zeichenfolgen variable Längen, sodass es unpraktisch ist, sie direkt in einem Ndarray zu speichern.
Um dies zu berücksichtigen, verwendet Pandas Objekt-Ndarrays, um Zeiger auf Objekte zu speichern. Diese Objekte enthalten die tatsächlichen Stringwerte. Daher haben Objekt-Darrays eine unbestimmte Größe und werden als Datentyp „Objekt“ dargestellt Ganzzahlen und ein Objektarray mit vier Zeigern auf drei Zeichenfolgenobjekte:
int64 Array: | 1 | 2 | 3 | 4 | Objektarray: | Zeiger auf „Hallo“ | Zeiger auf „Welt“ | Zeiger auf „!“ | Visualisierung: --------- ----------- | int64 | Objekt | |--------- -----------| | 1 | hallo | | 2 | Welt | | 3 | ! | | 4 | null | --------- ----------- In dieser Darstellung belegt das int64-Array eine feste Menge an Platz, wobei jedes Element 8 Bytes groß ist. Andererseits speichert das Objektarray Zeiger auf Objekte unterschiedlicher Größe, daher der Datentyp „Objekt“.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3