Bagaimana Mengendalikan Nilai NaN Apabila Menukar Lajur Pandas kepada Integer?

Mary-Kate Olsen
Lepaskan: 2024-11-19 17:44:02
asal
850 orang telah melayarinya

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)
Salin selepas log masuk

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

>>> series
0      1
1      2
2    NaN
dtype: Int64
Salin selepas log masuk

Menukar Lajur Panda

Untuk menukar lajur Pandas kepada jenis integer nullable:

df['myCol'] = df['myCol'].astype('Int64')
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan