Masalah:
Walaupun percubaan untuk menukar lajur yang dinyatakan secara eksplisit dalam DataFrame kepada rentetan, ia kekal sebagai 'objek' dtype. Pemeriksaan nilai lajur individu mengesahkan nilai tersebut sememangnya rentetan.
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
Penjelasan:
Panda menggunakan 'objek' dtype untuk menerangkan lajur yang mengandungi jenis data panjang berubah-ubah , seperti rentetan. Ini berbeza daripada jenis data panjang tetap seperti 'int64' dan 'float64'. Secara dalaman, Pandas menyimpan data rentetan menggunakan penunjuk ke objek rentetan dalam ndarray 'objek'.
int64 array: [1, 2, 3, 4] object array: [pointer to string 'John', pointer to string 'Mary', pointer to string 'Bob', pointer to string 'Alice']
'objek dtype' tidak membayangkan bahawa objek di dalamnya bukan rentetan. Setiap objek rentetan masih berada dalam ingatan dan boleh diakses melalui penunjuk dalam ndarray 'objek'.
Untuk memastikan Pandas mengenali lajur sebagai rentetan, pastikan semua elemen dalam lajur tersebut adalah rentetan yang konsisten. Selain itu, kaedah seperti .apply(str) atau .astype('string') boleh digunakan untuk menukar elemen kepada rentetan.
Atas ialah kandungan terperinci Mengapa Lajur DataFrame Saya Menunjukkan Jenis Data 'Objek' Selepas Penukaran Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!