Pandas DataFrame DataFrame.fillna()関数
Suraj Joshi
2023年1月30日
-
pandas.DataFrame.fillna()
の構文: -
コード例:
DataFrame.fillna()
メソッドでDataFrame
のすべてのNaN
値を入力する -
コード例:
method
パラメータを指定するDataFrame.fillna()
メソッド -
コード例:
limit
パラメータを指定するDataFrame.fillna()
メソッド
pandas.DataFrame.fillna()
関数は、DataFrame
の NaN
値を特定の値に置き換えます。
pandas.DataFrame.fillna()
の構文:
DataFrame.fillna(
value=None, method=None, axis=None, inplace=False, limit=None, downcast=None
)
パラメーター
value |
scalar 、dict 、Series 、または DataFrame 。NaN 値を置き換えるために使用される値 |
method |
backfill 、bfill 、pad 、ffill または None 。NaN 値を埋めるために使用されるメソッド。 |
axis |
行(axis = 0 )または列(axis = 1 )に沿って欠損値を埋めます |
inplace |
ブール。True の場合、呼び出し元の DataFrame をインプレースで変更します |
limit |
整数。 method が指定されている場合、これは、前方/後方入力する連続した NaN 値の最大数です。 method が指定されていない場合、これは塗りつぶされる軸の最大の NaN の数です。 |
downcast |
辞書。データ型のダウンキャストを指定します |
戻り値
inplace
が True
の場合、すべての NaN
値を指定された value
で置き換える DataFrame
。それ以外の場合は None
。
コード例:DataFrame.fillna()
メソッドで DataFrame
のすべての NaN
値を入力する
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(5)
print("Filled DataFrame:")
print(filled_df)
出力:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 5.0
2 3.0 8.0
3 5.0 5.0
4 3.0 3.0
pandas.DataFrame.fillna()
メソッドの引数として提供された 5
で DataFrame
のすべての NaN
値を埋めます。
DataFrame.fillna()
と平均数
列の NaN
値を列の平均値に置き換えることができます。
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(df.mean(),inplace=True)
print("Filled DataFrame:")
print(df)
出力:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.00 4.0
1 2.00 5.0
2 3.00 8.0
3 2.25 5.0
4 3.00 3.0
これは、X
列の NaN
値を X
列の平均で埋め、Y
列の NaN
値を Y
列の平均で埋めます。
inplace = True
により、fillna()
関数を呼び出した後に元の DataFrame
が変更されます。
DataFrame.fillna()
が 0 で埋められる
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(0,inplace=True)
print("Filled DataFrame:")
print(df)
出力:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 0.0
2 3.0 8.0
3 0.0 0.0
4 3.0 3.0
すべての NaN
を 0
で埋めます。
コード例:method
パラメータを指定する DataFrame.fillna()
メソッド
また、さまざまな method
パラメーターを使用して、DataFrame
に NaN
値を入力することもできます。
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(method="backfill")
print("Filled DataFrame:")
print(filled_df)
出力:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 8.0
2 3.0 8.0
3 3.0 3.0
4 3.0 3.0
method ="backfill"
を設定すると、同じ列の NaN
値の後の値で DataFrame
のすべての NaN
値が埋められます。
bfill
、pad
、および ffill
メソッドを使用して、DataFrame
の NaN
値を埋めることもできます。
method |
説明 |
---|---|
backfill / bfill |
DataFrame のすべての NaN 値を同じ列の NaN 値の後の値で埋めます。 |
ffill / pad |
DataFrame のすべての NaN 値を同じ列の NaN 値の前の値で埋めます。 |
コード例:limit
パラメータを指定する DataFrame.fillna()
メソッド
DataFrame.fillna()
メソッドの limit
パラメータは、メソッドによって入力される連続した NaN
値の最大数を制限します。
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2,np.nan, 3,3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(3,limit=1)
print("Filled DataFrame:")
print(filled_df)
出力:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 NaN 8.0
3 3.0 NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 3.0
2 3.0 8.0
3 3.0 NaN
4 3.0 3.0
ここで、NaN
が列に入力されると、同じ列の他の NaN
値はそのまま残ります。
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn