Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengendalikan Nilai NaN Apabila Menukar Lajur Pandas kepada Integer?

Bagaimana Mengendalikan Nilai NaN Apabila Menukar Lajur Pandas kepada Integer?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 17:44:02900semak imbas

How to Handle NaN Values When Converting a Pandas Column to Integer?

Mengendalikan Nilai NaN Semasa Menukar Lajur Panda kepada Integer

Apabila bekerja dengan bingkai data Pandas, anda mungkin menghadapi situasi di mana anda perlu menukar lajur mengandungi nilai NaN kepada jenis data integer. Walau bagaimanapun, penukaran ini boleh membawa kepada ralat, kerana tatasusunan integer tidak dapat mengendalikan nilai yang hilang secara lalai.

Pendekatan Pengendalian Ralat

Anda telah mencuba dua pendekatan untuk menukar 'id ' lajur kepada integer, tetapi kedua-duanya telah mengakibatkan ralat:

  • Penghantaran semasa CSV baca: ralat: Integer lajur mempunyai nilai NA
  • Menukar selepas CSV dibaca: ralat: Tidak boleh menukar NA kepada integer

Penyelesaian: Jenis Data Integer Nullable

Pandas versi 0.24 memperkenalkan konsep jenis data integer nullable. Ciri ini membenarkan tatasusunan integer mengandungi nilai yang hilang. Untuk menggunakan pendekatan ini:

import numpy as np

# Create a nullable integer array
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())

# Create a Pandas Series from the array
series = pd.Series(arr)

Siri yang terhasil akan mempunyai dtype 'Int64' dan akan membenarkan nilai NaN:

>>> series
0      1
1      2
2    NaN
dtype: Int64

Menukar Lajur Panda

Untuk menukar lajur Pandas kepada jenis integer nullable:

df['myCol'] = df['myCol'].astype('Int64')

Ini akan menukar lajur 'myCol' kepada jenis data integer dengan nilai yang tiada diwakili sebagai NaN.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Nilai NaN Apabila Menukar Lajur Pandas kepada Integer?. 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