Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengendalikan Amaran Dtype Panda: Low_Memory dan Pilihan Dtype?

Bagaimana Mengendalikan Amaran Dtype Panda: Low_Memory dan Pilihan Dtype?

DDD
DDDasal
2024-11-07 10:06:02504semak imbas

How to Handle Pandas' Dtype Warning: Low_Memory and Dtype Options?

Menyelesaikan Amaran Dtype Panda dengan Low_Memory dan Pilihan Dtype

Apabila memuatkan fail CSV dengan Pandas menggunakan pd.read_csv('somefile.csv'), anda mungkin akan menghadapi amaran:

DtypeWarning: Columns (4,5,7,16) have mixed types. Specify dtype option on import or set low_memory=False.

Low_Memory: A Deprecated Concept

Pilihan low_memory sudah lapuk dan tidak mempunyai kesan fungsian. Tujuannya adalah untuk mengurangkan penggunaan memori semasa menghurai fail dengan menghalang inferens jenis. Walau bagaimanapun, ia kini tidak melakukan apa-apa yang berbeza.

Mengapa Low_Memory=False Boleh Membantu?

Amaran itu timbul kerana meneka djenis untuk setiap lajur memerlukan sumber yang intensif. Pandas menentukan dtypes dengan menganalisis keseluruhan fail. Tanpa mentakrifkan dtypes secara eksplisit, ia tidak boleh mula menghuraikan sehingga fail penuh dibaca.

Mengapa Menentukan Dtypes Adalah Paling Utama

Menentukan dtypes (cth., dtype={'user_id': int}) memberitahu Pandas tentang jenis data yang dijangkakan, membolehkannya mula menghuraikan serta-merta.

pd.read_csv('somefile.csv', dtype={'user_id': int})

Mendefinisikan djenis boleh mengelakkan ralat apabila menemui jenis data yang tidak sah (cth., "foobar" dalam lajur integer).

Memahami Pandas Dtypes

Pandas menyokong pelbagai dtypes, termasuk:

  • Numpy dtypes: float, int, bool, timedelta64[ns], datetime64[ns]
  • Khusus Panda:

    • datetime64[ns, ]: Cap masa sedar zon masa
    • kategori: Enum diwakili oleh integer
    • tempoh[] : Tempoh masa
    • Jarang[int], Jarang[terapung]: Data dengan nilai yang tiada
    • Selang: Pengindeksan
    • integer boleh null: Int8, Int16, Int32, Int64, UInt8 , UInt16, UInt32, UInt64
    • rentetan: Akses kepada atribut .str
    • boolean: Menyokong data yang hilang

Awas

  • Menetapkan dtype=object menyekat amaran tetapi tidak meningkatkan kecekapan memori.
  • Menetapkan dtype=unicode tidak berkesan kerana Numpy mewakili unikod sebagai objek.

Alternatif: Menggunakan Penukar

UntukGunakan penukar untuk mengendalikan data yang mungkin tidak sah (cth., "foobar" dalam lajur integer). Walau bagaimanapun, penukar adalah perlahan dan tidak cekap, jadi gunakannya dengan berhati-hati.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Amaran Dtype Panda: Low_Memory dan Pilihan Dtype?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn