目次
1. Paraan ng pag-detect ng NaN sa Python
Ano ang NaN?
Ang NaN(Not a Number) ay isang espesyal na halaga ng floating-point na naglalarawan na ang numerong operasyon ay hindi wasto o hindi tinukoy. Karaniwan itong lumilitaw bilang resulta ng paghahati sa zero o ng hindi wastong operasyon, kaya’t kailangang mag-ingat lalo na sa pagsusuri ng datos at numerikal na pagproseso. Kung hindi tama ang paghawak sa NaN, maaaring maging hindi tumpak ang mga resulta ng kalkulasyon o hindi gumana nang ayon sa inaasahan ang programa.Kahalagahan ng Pag-detect ng NaN
Kapag kasama ang NaN sa isang dataset, maaaring maapektuhan ang pagiging mapagkakatiwalaan ng datos at ang mga resulta ng kalkulasyon. Dahil dito, mahalagang unang tukuyin ang NaN at pagkatapos ay isagawa nang tama ang mga susunod na hakbang (tulad ng pagtanggal, pagpapalit, atbp.).2. Paraan ng Paglikha ng NaN
Sa Python, maaaring lumikha ng NaN gamit angfloat('nan')
. Ginagamit ito upang hayagang ipakita ang hindi wastong resulta sa mga numerikal na kalkulasyon.num = float('nan')
print(num) # Resulta: nan
Pagkakaiba sa None
Bagaman ang NaN ay numerikal na hindi wasto, angNone
ay nagpapahiwatig ng “walang anumang bagay” na kalagayan. Maaaring ikumpara ang None
gamit ang ==
, ngunit ang NaN ay hindi pantay kahit na ikumpara sa sarili, kaya ang paggamit ng ==
para sa paghuhusga ay hindi angkop.num = float('nan')
print(num == num) # Resulta: False
none_value = None
print(none_value == None) # Resulta: True

3. Pamamaraan ng Pagtukoy sa NaN
3.1. Pagtukoy gamit ang Standard Library(math.isnan()
)
Upang matukoy ang NaN gamit ang standard library ng Python, gamitin ang math.isnan()
. Ang function na ito ay nagbabalik ng True
kung ang ibinigay na halaga ay NaN.import math
num = float('nan')
print(math.isnan(num)) # Resulta: True
3.2. Pagtukoy gamit ang NumPy(numpy.isnan()
)
Ang NumPy ay isang library na nakatuon sa pagkalkula ng mga array at matrix, at nag-aalok ng function na numpy.isnan()
para epektibong matukoy ang NaN sa loob ng mga array. Madalas itong ginagamit sa numerikal na pagsusuri at siyentipikong pagproseso ng datos.import numpy as np
num_list = [1, 2, np.nan, 4]
print(np.isnan(num_list)) # Resulta: [False False True False]
3.3. Pagtukoy gamit ang pandas(pandas.isna()
)
Kapag nagtatrabaho sa mga DataFrame, gamitin ang isna()
o isnull()
ng pandas upang matukoy ang NaN. Ang mga function na ito ay kapaki-pakinabang sa paglilinis ng data at paghawak ng mga nawawalang halaga.import pandas as pd
import numpy as np
data = pd.Series([1, 2, np.nan, 4])
print(pd.isna(data)) # Resulta: 0 False
# 1 False
# 2 True
# 3 False
4. Paraan ng pagtanggal at pagpapalit ng NaN
4.1. Pagtanggal ng NaN mula sa listahan
Para tanggalin ang NaN sa loob ng listahan, maaaring pagsamahin angmath.isnan()
at 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) # Resulta: [1, 2, 4]
4.2. Pagtanggal ng NaN gamit ang pandas (dropna()
)
Kung aalisin ang NaN mula sa DataFrame, gamitin ang dropna()
method. Sa ganitong paraan, matatanggal ang mga row o column na may 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(clean_df)
4.3. Pagpapalit ng NaN gamit ang pandas (fillna()
)
Kung hindi nais tanggalin ang NaN kundi palitan ito ng isang tiyak na halaga, gamitin ang fillna()
method.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. Pagkalkulang may NaN
Ang mga kalkulasyon na may kasamang NaN ay magreresulta rin sa NaN, kaya upang makakuha ng tumpak na resulta, kailangan munang alisin o palitan ang NaN.import numpy as np
result = 10 + np.nan
print(result) # Resulta: nan
Halimbawa ng estadistikal na kalkulasyon na may NaN
Kapag gumagawa ng estadistikal na kalkulasyon sa dataset na may NaN at nais mong huwag isama ang NaN sa pagkalkula, gamitin ang function nananmean()
ng NumPy. Kinakalkula nito ang average na hindi isinasama ang NaN.import numpy as np
data = [1, 2, np.nan, 4]
mean = np.nanmean(data) # Kalkulahin ang average na hindi isinasama ang NaN
print(mean) # Resulta: 2.3333...
6. Mga Paalala sa Pagtukoy ng NaN
6.1. Pag-uugali ng mga Operator ng Paghahambing
Ang NaN ay may natatanging katangian na kahit ihambing mo ito sa ibang numero o sa sarili nito gamit ang mga operator ng paghahambing, hindi ito magiging katumbas. Dahil dito, hindi maaaring gamitin ang==
o !=
para sa pagtukoy, at kailangan gumamit ng mga espesyal na function (tulad ng isnan()
o isna()
).num = float('nan')
print(num == num) # Resulta: False
6.2. Mga Punto sa Paglilinis ng Data
Sa pagsusuri ng data, kung mananatili ang NaN, hindi makakakuha ng tumpak na kalkulasyon. Dahil maaaring maiba ang mga resulta, kailangan ng maayos na paglilinis nang maaga. Sa pamamagitan ng wastong pagtanggal o pagpapalit ng NaN, maaaring mapabuti ang pagiging mapagkakatiwalaan ng data.7. Buod
Sa Python, sa pamamagitan ng paggamit ngmath
, numpy
, at pandas
, maaaring epektibong matukoy at maproseso ang NaN. Ang tamang pag-unawa sa kung paano hawakan ang NaN, at ang pagkakaroon ng batayang kaalaman upang mapanatili ang pagiging maaasahan ng pagsusuri ng datos at numerong kalkulasyon ay isang kasanayan na kapaki-pakinabang sa lahat ng larangan ng programming.