Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menukar Lajur Pandas dengan Nilai Hilang kepada Jenis Data Integer?

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

Patricia Arquette
Patricia Arquetteasal
2024-11-22 02:35:16379semak imbas

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

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

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
  1. Buat objek IntegerArray dengan dtype yang diingini, dalam kes ini, Int64 .
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
  1. Tukar lajur 'id' kepada IntegerArray menggunakan astype().
df['id'] = df['id'].astype('Int64')

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!

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