目次
1. Cara Menentukan NaN di Python
Apa itu NaN?
NaN (Not a Number) adalah floating-point khusus yang menunjukkan bahwa operasi numerik tidak valid atau tidak terdefinisi. Biasanya muncul sebagai hasil pembagian dengan nol atau operasi yang tidak valid, sehingga perlu perhatian khusus dalam analisis data dan pemrosesan numerik. Jika NaN tidak ditangani dengan benar, hasil perhitungan dapat menjadi tidak akurat dan program mungkin tidak berfungsi sebagaimana mestinya.Pentingnya Menentukan NaN
Jika NaN terdapat dalam dataset, keandalan data dan hasil perhitungan dapat terpengaruh. Oleh karena itu, penting untuk pertama-tama menentukan NaN, kemudian melakukan penanganan yang tepat (seperti penghapusan, penggantian, dll.).2. Cara Membuat NaN
Di Python, NaN dapat dibuat denganfloat('nan')
. Digunakan untuk secara eksplisit menunjukkan hasil yang tidak valid dalam perhitungan numerik.num = float('nan')
print(num) # hasil: nan
Perbedaan dengan None
NaN tidak valid secara numerik, sedangkanNone
menunjukkan keadaan “tidak ada apa-apa”. None
dapat dibandingkan dengan ==
, tetapi NaN tidak sama dengan dirinya sendiri, sehingga penilaian dengan ==
tidak tepat.num = float('nan')
print(num == num) # hasil: False
none_value = None
print(none_value == None) # hasil: True

3. Cara Menentukan NaN
3.1. Penentuan dengan Library Standar(math.isnan()
)
Untuk menentukan NaN dengan library standar Python, gunakan math.isnan()
. Fungsi ini mengembalikan True
jika nilai yang diberikan adalah NaN.import math
num = float('nan')
print(math.isnan(num)) # hasil: True
3.2. Penentuan dengan NumPy(numpy.isnan()
)
NumPy adalah library yang khusus untuk perhitungan array dan matriks, menyediakan fungsi numpy.isnan()
untuk menentukan NaN dalam array secara efisien. Sering digunakan dalam analisis numerik dan pemrosesan data ilmiah.import numpy as np
num_list = [1, 2, np.nan, 4]
print(np.isnan(num_list)) # hasil: [False False True False]
3.3. Penentuan dengan pandas(pandas.isna()
)
Saat menangani DataFrame, gunakan isna()
atau isnull()
dari pandas untuk menentukan NaN. Fungsi-fungsi ini membantu dalam pembersihan data dan penanganan nilai yang hilang.import pandas as pd
import numpy as np
data = pd.Series([1, 2, np.nan, 4])
print(pd.isna(data)) # hasil: 0 False
# 1 False
# 2 True
# 3 False
4. Cara Menghapus & Mengganti NaN
4.1. Menghapus NaN dari List
Untuk menghapus NaN yang ada dalam list, Anda dapat menggabungkanmath.isnan()
dengan list comprehension.import math
num_list = [1, 2, float('nan'), 4]
clean_list = [num for num in num_list if not math.isnan(num)]
print(clean_list) # Hasil: [1, 2, 4]
4.2. Menghapus NaN dengan pandas (dropna()
)
Jika ingin menghapus NaN dari DataFrame, gunakan metode dropna()
. Ini akan menghapus baris atau kolom yang mengandung NaN.import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6]})
clean_df = df.dropna()
print(df)
4.3. Mengganti NaN dengan pandas (fillna()
)
Jika tidak ingin menghapus NaN tetapi mengganti dengan nilai tertentu, gunakan metode fillna()
.import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6]})
df.fillna(0, inplace=True)
print(df)
5. Perhitungan yang Mengandung NaN
Perhitungan yang mengandung NaN akan menghasilkan NaN juga, sehingga untuk mendapatkan hasil yang akurat, Anda perlu menghapus atau mengganti NaN terlebih dahulu.import numpy as np
result = 10 + np.nan
print(result) # hasil: nan
Contoh Perhitungan Statistik yang Mengandung NaN
Saat melakukan perhitungan statistik pada dataset yang mengandung NaN dan ingin mengabaikan NaN, gunakan fungsinanmean()
dari NumPy. Fungsi ini menghitung nilai rata-rata dengan mengecualikan NaN.import numpy as np
data = [1, 2, np.nan, 4]
mean = np.nanmean(data) # Mengabaikan NaN untuk menghitung rata-rata
print(mean) # hasil: 2.3333...
6. Catatan tentang Penentuan NaN
6.1. Perilaku Operator Perbandingan
NaN memiliki sifat khusus dimana tidak sama dengan nilai lain atau dirinya sendiri ketika dibandingkan menggunakan operator perbandingan. Oleh karena itu, tidak dapat melakukan penilaian dengan==
atau !=
, dan perlu menggunakan fungsi khusus (isnan()
atau isna()
).num = float('nan')
print(num == num) # hasil: False
6.2. Poin Penting saat Pembersihan Data
Dalam analisis data, NaN yang tersisa tidak memungkinkan perhitungan yang akurat. Karena dapat mengubah hasil perhitungan, pembersihan yang tepat diperlukan sebelumnya. Dengan menghapus atau mengganti NaN secara tepat, keandalan data dapat ditingkatkan.7. Ringkasan
Di Python, dengan memanfaatkanmath
, numpy
, pandas
, Anda dapat menentukan dan memproses NaN secara efisien. Memahami cara menangani NaN dengan benar, serta memperoleh pengetahuan dasar untuk menjaga keandalan analisis data dan perhitungan numerik, adalah keterampilan yang berguna di semua bidang pemrograman.