Apa yang harus dilakukan ketika string data NA/ND tidak dikenali sebagai nilai yang hilang di panda
nilai yang hilang di panda
Dalam kumpulan data eksperimental, dll., kosong dapat diisi dengan NA, NA (Tidak dianalisis) atau ND, ND (Tidak terdeteksi). Di panda, NA dan ND dikenali hanya sebagai string (objek), jadi tidak mungkin memproses batch nilai yang hilang menggunakan fungsi dropna(), fillna(), dan isnull() sebagaimana adanya. .
Berikut ini diakui sebagai nilai yang hilang di panda:
- Tidak
- None
- np.nan
- matematika.nan
String NA dan ND harus dikonversi ke salah satu di atas.
Pemrosesan untuk NA dan ND
Buat data sampel yang berisi NA, ND, dan NaN.
Di [1]: impor numpy sebagai np impor panda sebagai pd df = pd.DataFrame({'A': [ 1, 'ND', 2, 3], 'B': [ 4,'NA', 5, 6 ], 'C': [ 7, 'ND', Tidak ada, np.nan]}) Keluar[1] A B C 0 1 4 7 1 ND NA ND 2 2 5 NaN 3 3 5 NaN
Tidakne dan np.nan dikenali dan dihitung sebagai nilai yang hilang, tetapi ND dan NA salah.
isnull(): Mengembalikan True jika nilainya hilang
isnull.sum(): agregat nilai yang hilang
In [2]: df.isnull() Out[2]: A B C 0 False False False 1 False False False 2 False False True 3 False False True In [3]: df.isnull().sum() Out[3] : A 0 B 0 C 2 dtype: int64
Ganti string ND dengan fungsi ganti
Masuk[4]: df = df.replace('ND', np.nan) Keluar[4]: A B C 0 1 4 7 1 NaN NA NaN 2 2 5 NaN 3 3 5 NaN
isnull() dan fillna() sekarang dapat diterapkan.
Di [5]: df.isnull() Keluar[5]: A B C 0 Salah Salah Salah Salah 1 Benar Salah Benar 2 Salah Salah Benar 3 Salah Salah Benar Di [6]: df.isnull().sum() Keluar[6] : A 2 B 0 C 2 dtype: int64 In [7]: df.fillna(10) Out[7]: A B C 0 1 4 7 1 10 NA 10 2 2 5 10 3 3 5 10
diskusi
Daftar komentar
Belum ada komentar