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:
from pandas.arrays import IntegerArray
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
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!