NaN は Not A Number の略で、データ内の欠損値を表す一般的な方法の 1 つです。これは特殊な浮動小数点値であり、float 以外の型に変換できません。 NaN 値は、次の主要な問題の 1 つです。
Pandas DataFrame で NaN 値をゼロに置き換えるメソッド
で Python では、Pandas データフレームで NaN 値をゼロに置き換えることができる 2 つの方法があります。それらは次のとおりです。
Pandas fillna() を使用して NaN 値をゼロに置き換えます
fillna() 関数は、指定されたメソッドを使用して NA/NaN 値を埋めるために使用されます。より深く理解するために、いくつかの例を見てみましょう。
Pandas fillna() を使用して列の NaN 値をゼロに置き換えます
fillna() 関数を使用して Pandas データフレームの単一列の NaN 値をゼロに置き換える構文は次のとおりです。
Syntax: df['DataFrame Column'] = df['DataFrame Column'].fillna(0)>
Python3
# importing libraries> import> pandas as pd> import> numpy as np> nums>=> {>'Set_of_Numbers'>: [>2>,>3>,>5>,>7>,>11>,>13>,> >np.nan,>19>,>23>, np.nan]}> # Create the dataframe> df>=> pd.DataFrame(nums, columns>=>[>'Set_of_Numbers'>])> # Apply the function> df[>'Set_of_Numbers'>]>=> df[>'Set_of_Numbers'>].fillna(>0>)> # print the DataFrame> df> |
Pythonは小数点以下2桁まで出力します
>
>
出力:

fillna() は単一列の NaN を置き換えます
Pandas fillna() を使用して、列全体の NaN 値をゼロに置き換えます。
fillna() 関数を使用して NaN 値を Pandas データフレーム全体のゼロに置き換える構文は次のとおりです。
Syntax: df.fillna(0)>
Python3
# importing libraries> import> pandas as pd> import> numpy as np> nums>=> {>'Number_set_1'>: [>0>,>1>,>1>,>2>,>3>,>5>, np.nan,> >13>,>21>, np.nan],> >'Number_set_2'>: [>3>,>7>, np.nan,>23>,>31>,>41>,> >np.nan,>59>,>67>, np.nan],> >'Number_set_3'>: [>2>,>3>,>5>, np.nan,>11>,>13>,>17>,> >19>,>23>, np.nan]}> # Create the dataframe> df>=> pd.DataFrame(nums)> # Apply the function> df>=> df.fillna(>0>)> # print the DataFrame> df> |
>
Excelで最初の文字を削除する
>
出力:

データフレーム全体の NaN を置き換える fillna() 関数
NumPy replace() を使用して NaN 値をゼロに置換する
の データフレーム.replace() Pandas の関数は、 弦 、正規表現、 リスト 、 辞書 、DataFrame など。
NumPy replace() を使用して列の NaN 値をゼロに置き換えます
replace() 関数を使用して NaN 値を Pandas データフレームの単一列のゼロに置き換える構文は次のとおりです。
Syntax: df['DataFrame Column'] = df['DataFrame Column'].replace(np.nan, 0)>
Python3
ストアドプログラム制御
# importing libraries> import> pandas as pd> import> numpy as np> nums>=> {>'Car Model Number'>: [>223>, np.nan,>237>,>195>, np.nan,> >575>,>110>,>313>, np.nan,>190>,>143>,> >np.nan],> >'Engine Number'>: [>4511>, np.nan,>7570>,>1565>,>1450>,>3786>,> >2995>,>5345>,>7777>,>2323>,>2785>,>1120>]}> # Create the dataframe> df>=> pd.DataFrame(nums, columns>=>[>'Car Model Number'>])> # Apply the function> df[>'Car Model Number'>]>=> df[>'Car Model Number'>].replace(np.nan,>0>)> # print the DataFrame> df> |
>
>
出力:

replace() は単一列の NaN を置き換えます
NumPy replace() を使用して、データフレーム全体の NaN 値をゼロに置き換えます
次を使用して NaN 値を Pandas データフレーム全体のゼロに置き換える構文 replace() 関数 以下のとおりであります:
Syntax: df.replace(np.nan, 0)>
Python3
# importing libraries> import> pandas as pd> import> numpy as np> nums>=> {>'Student Name'>: [>'Shrek'>,>'Shivansh'>,>'Ishdeep'>,> >'Siddharth'>,>'Nakul'>,>'Prakhar'>,> >'Yash'>,>'Srikar'>,>'Kaustubh'>,> >'Aditya'>,>'Manav'>,>'Dubey'>],> >'Roll No.'>: [>18229>,>18232>, np.nan,>18247>,>18136>,> >np.nan,>18283>,>18310>,>18102>,>18012>,> >18121>,>18168>],> >'Subject ID'>: [>204>, np.nan,>201>,>105>, np.nan,>204>,> >101>,>101>, np.nan,>165>,>715>, np.nan],> >'Grade Point'>: [>9>, np.nan,>7>, np.nan,>8>,>7>,>9>,>10>,> >np.nan,>9>,>6>,>8>]}> # Create the dataframe> df>=> pd.DataFrame(nums)> # Apply the function> df>=> df.replace(np.nan,>0>)> # print the DataFrame> df> |
>
>
クロムアドレスバー
出力:

データフレーム全体の NaN を置き換える replace() 関数