Problem:
Trotz Versuchen, bestimmte Spalten in a explizit zu konvertieren Wenn Sie einen DataFrame in Strings umwandeln, bleiben sie als dtype „Objekt“ bestehen. Die Überprüfung einzelner Spaltenwerte bestätigt, dass es sich tatsächlich um Zeichenfolgen handelt.
Int64Index: 56992 entries, 0 to 56991 Data columns (total 7 columns): id 56992 non-null values attr1 56992 non-null values attr2 56992 non-null values attr3 56992 non-null values attr4 56992 non-null values attr5 56992 non-null values attr6 56992 non-null values dtypes: int64(2), object(5) Column 'attr2' remains as dtype 'object' despite conversion: convert attr2 to string
Erklärung:
Pandas verwendet dtype „object“, um Spalten zu beschreiben, die Datentypen variabler Länge enthalten , wie z. B. Zeichenfolgen. Dies unterscheidet sich von Datentypen fester Länge wie „int64“ und „float64“. Intern speichert Pandas Zeichenfolgendaten mithilfe von Zeigern auf Zeichenfolgenobjekte in einem „Objekt“-Ndarray.
int64 array: [1, 2, 3, 4] object array: [pointer to string 'John', pointer to string 'Mary', pointer to string 'Bob', pointer to string 'Alice']
Das „dtype-Objekt“ impliziert nicht, dass die darin enthaltenen Objekte keine Zeichenfolgen sind. Jedes String-Objekt befindet sich weiterhin im Speicher und kann über die Zeiger im ndarray „object“ aufgerufen werden.
Um sicherzustellen, dass Pandas Spalten als Strings erkennt, stellen Sie sicher, dass alle Elemente in diesen Spalten konsistente Strings sind. Darüber hinaus können Methoden wie .apply(str) oder .astype('string') verwendet werden, um Elemente in Strings umzuwandeln.
Das obige ist der detaillierte Inhalt vonWarum zeigt meine DataFrame-Spalte nach der String-Konvertierung den Datentyp „Objekt' an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!