Bagaimanakah Saya Boleh Menukar Lajur Pandas dengan Nilai Hilang kepada Jenis Data Integer?

Patricia Arquette
Lepaskan: 2024-11-22 02:35:16
asal
295 orang telah melayarinya

How Can I Convert Pandas Columns with Missing Values to Integer Data Types?

Menukar Lajur Pandas dengan Nilai Hilang kepada Integer

Apabila berurusan dengan bingkai data Pandas, selalunya perlu menentukan jenis data lajur tertentu. Walau bagaimanapun, jika lajur mengandungi nilai yang tiada atau kosong (NaNs), menukarkannya kepada jenis integer seperti 'int' boleh menimbulkan cabaran.

Masalah yang Dihadapi:

Untuk menunjukkan isu ini, katakan kita mempunyai bingkai data Pandas yang dibaca daripada fail CSV, dengan lajur bernama 'id' yang mengandungi NaN. Walau bagaimanapun, kita perlu menentukan lajur 'id' sebagai jenis integer.

Mesej Ralat:

Apabila cuba menghantar terus lajur 'id' kepada integer semasa membaca fail CSV, kami menghadapi ralat berikut:

df= pd.read_csv("data.csv", dtype={'id': int})
error: Integer column has NA values
Salin selepas log masuk

Sebagai alternatif, jika kami cuba menukar lajur taip selepas membaca fail CSV, kita dapat:

df= pd.read_csv("data.csv")
df[['id']] = df[['id']].astype(int)
error: Cannot convert NA to integer
Salin selepas log masuk

Penyelesaian:

Dalam Pandas versi 0.24 dan seterusnya, adalah mungkin untuk mewakili data integer dengan nilai yang tiada menggunakan Nullable Jenis Data Integer, dilaksanakan dengan IntegerArray. Untuk menggunakan ciri ini:

  1. Import kelas IntegerArray daripada Pandas.
from pandas.arrays import IntegerArray
Salin selepas log masuk
  1. Buat objek IntegerArray dengan dtype yang diingini, dalam kes ini, Int64 .
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
Salin selepas log masuk
  1. Tukar lajur 'id' kepada IntegerArray menggunakan astype().
df['id'] = df['id'].astype('Int64')
Salin selepas log masuk

Dengan menggunakan Nullable Integer Data Types, Pandas boleh mengendalikan lajur integer dengan nilai yang tiada sambil mengekalkan jenis data yang dimaksudkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Lajur Pandas dengan Nilai Hilang kepada Jenis Data 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