Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah My Pandas DataFrame Mempunyai Lajur Rentetan dengan \'objek\' dtype?
Dalam Pandas, perpustakaan Python yang popular digunakan untuk analisis data, anda mungkin menghadapi situasi di mana DataFrame anda mengandungi lajur dengan nilai rentetan yang kelihatan, tetapi atribut dtype menunjukkannya sebagai "objek". Anomali ini boleh timbul selepas menukar objek kepada rentetan secara eksplisit.
Sebab Jenis Data Objek:
Kekeliruan berpunca daripada pelaksanaan asas tatasusunan NumPy, yang menyimpan data dalam DataFrames. Tatasusunan NumPy memerlukan elemen saiz yang sama dalam bait. Untuk jenis primitif seperti integer (int64) dan nombor titik terapung (float64), saiznya ditetapkan (8 bait). Walau bagaimanapun, rentetan mempunyai panjang berubah-ubah.
Untuk menampung kebolehubahan ini, Pandas tidak menyimpan bait rentetan secara langsung dalam tatasusunan. Sebaliknya, ia mencipta tatasusunan "objek" yang mengandungi penunjuk kepada objek rentetan. Ini menyebabkan dtype menjadi "objek".
Contoh:
Pertimbangkan DataFrame berikut:
<code class="python">df = pd.DataFrame({ "id": [0, 1, 2], "attr1": ["foo", "bar", "baz"], "attr2": ["100", "200", "300"], })</code>
Jika kita menyemak djenis bagi lajur, kita melihat bahawa attr2 ialah dtype "objek":
<code class="python">print(df.dtypes) # Output: # id int64 # attr1 object # attr2 object</code>
Penukaran kepada Rentetan:
Apabila kita secara eksplisit menukar attr2 kepada rentetan, Pandas melakukan tidak mengubah mekanisme storan asas:
<code class="python">df["attr2"] = df["attr2"].astype(str)</code>
Oleh itu, attr2 mengekalkan "objek" dtype.
Maklumat Tambahan:
Atas ialah kandungan terperinci Mengapakah My Pandas DataFrame Mempunyai Lajur Rentetan dengan \'objek\' dtype?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!