ndarray vs DataFrame: Mengekalkan Jenis Integer dengan NaN
Untuk senario operasi di mana mengekalkan integriti lajur jenis integer dalam DataFrame adalah yang terpenting sambil menampung nilai yang hilang, cabaran yang wujud timbul. Tatasusunan NumPy, struktur data asas dalam Pandas DataFrames, mengenakan sekatan pada jenis data, terutamanya mengenai kewujudan bersama unsur integer dan nilai NaN.
Dilema NaN
NumPy's ketidakupayaan untuk mewakili NaN dalam tatasusunan integer berpunca daripada batasan reka bentuk. Ini menimbulkan teka-teki dalam senario di mana seseorang ingin mengekalkan jenis data integer tout court.
Percubaan dan Ketidakkonsistenan
Usaha untuk memintas had ini telah dijalankan, seperti memanfaatkan fungsi from_records() dengan coerce_float=False dan bereksperimen dengan tatasusunan bertopeng NumPy. Walau bagaimanapun, pendekatan ini secara konsisten menukar jenis data lajur kepada terapung.
Penyelesaian dan Had Semasa
Sehingga kemajuan dibuat dalam pengendalian nilai yang hilang oleh NumPy, pilihan masih terhad . Satu penyelesaian yang berpotensi melibatkan penggantian NaN dengan nilai sentinel, seperti integer besar yang dipilih secara sewenang-wenangnya yang berbeza daripada data yang sah dan boleh digunakan untuk mengenal pasti entri yang hilang semasa pemprosesan.
Sebagai alternatif, penyelesaian yang diterima pakai dalam versi terbaru panda (0.24 dan seterusnya) adalah untuk menggunakan dtype sambungan Int64 (berhuruf besar "Int") dan bukannya lalai int64 (huruf kecil). Int64 menyokong nilai NA integer pilihan, menyediakan penyelesaian untuk isu khusus ini.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Jenis Data Integer dalam Pandas DataFrames dengan Nilai yang Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!