Pandas DataFrame DataFrame.dropna()関数
-
pandas.DataFrame.dropna()
の構文 -
コード例:行をドロップする
DataFrame.dropna()
-
コード例:列を削除するための
DataFrame.dropna()
-
コード例:
DataFrame.dropna()
withhow = all
-
コード例:指定されたサブセットまたは
thresh
を使用するDataFrame.dropna()
-
コード例:
inplace = True
を指定するDataFrame.dropna()
pandas.DataFrame.dropna()
関数は、null 値を含む行または列をドロップすることにより、DataFrame
から null 値(欠損値)を削除します。
NaN
(Not a Number
)と NaT
(Not a Time
)は null 値を表します。DataFrame.dropna()
はこれらの値を検出し、それに応じて DataFrame
をフィルタリングします。
pandas.DataFrame.dropna()
の構文
DataFrame.dropna(axis, how, thresh, subset, inplace)
パラメーター
axis |
軸を行または列のいずれかに決定します。 0 または 'index' の場合、欠損値を含む行を削除します。 1 または 'columns' の場合、欠損値を含む列を削除します。デフォルトでは、その値は 0 です。 |
how |
このパラメーターは、関数が行または列をドロップする方法を決定します。any または all の 2つの文字列のみを受け入れます。デフォルトでは、any に設定されています。 any は、null 値が含まれている場合に行または列を削除します。 all は、すべての値が欠落している場合に行または列を削除します。 |
thresh |
これは、行または列のドロップを防止する非欠損値の最小数を指定する整数です。 |
subset |
ドロッププロシージャを指定する行または列の名前を持つ配列です。 |
inplace |
これは、True に設定されている場合、呼び出し元の DataFrame を変更する Boolean 値です。デフォルトでは、その値は False です。 |
戻り値
渡されたパラメータに応じて、行または列がドロップされたフィルタリング済みの DataFrame
を返します。
コード例:行をドロップする DataFrame.dropna()
デフォルトでは、軸は 0、つまり行なので、すべての出力で行が削除されます。
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: None, 2: 80,3: None, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: None, 1: 75, 2: 82, 3: 64, 4: None}})
print(dataframe)
DataFrame
の例は次のとおりです。
Attendance Name Obtained Marks
0 60.0 Olivia NaN
1 NaN John 75.0
2 80.0 Laura 82.0
3 NaN Ben 64.0
4 95.0 Kevin NaN
この関数のすべてのパラメーターはオプションです。パラメータを渡さない場合、関数は単一の null 値を含むすべての行を削除します。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
}
)
dataframe1 = dataframe.dropna()
print(dataframe1)
出力:
Attendance Name Obtained Marks
2 80.0 Laura 82.0
単一の欠損値を含むすべての行を削除しました。
コード例:列を削除するための DataFrame.dropna()
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
}
)
dataframe1 = dataframe.dropna(axis=1)
print(dataframe1)
出力:
Name
0 Olivia
1 John
2 Laura
3 Ben
4 Kevin
DataFrame.dropna()
メソッドで axis = 1
を設定したため、1つの欠損値を含むすべての列が削除されました。
コード例:DataFrame.dropna()
with how = all
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
}
)
dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)
出力:
Attendance Name Obtained Marks
0 60.0 Olivia NaN
1 NaN John 75.0
2 80.0 Laura 82.0
3 NaN Ben 64.0
4 95.0 Kevin NaN
how
パラメータの値が all
に設定されているため、行のすべての値が null になるはずなので、欠損値を含む行は削除されません。
指定された軸にすべての値がない場合、how
が all
に設定されていても、DataFrame.dropna()
メソッドはその軸をドロップします。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: None, 1: None, 2: None, 3: None, 4: None},
}
)
print(dataframe)
print("--------")
dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)
出力:
Attendance Name Obtained Marks
0 60.0 Olivia None
1 NaN John None
2 80.0 Laura None
3 NaN Ben None
4 95.0 Kevin None Attendance Name
0 60.0 Olivia
1 NaN John
2 80.0 Laura
3 NaN Ben
4 95.0 Kevin
コード例:指定されたサブセットまたは thresh
を使用する DataFrame.dropna()
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
}
)
dataframe1 = dataframe.dropna(thresh=3)
print(dataframe1)
出力:
Attendance Name Obtained Marks
2 80.0 Laura 82.0
thresh
の値は 3 です。これは、ドロップを防ぐために、少なくとも 3つの空でない値が必要であることを意味します。
subset
を指定することもできます。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
}
)
dataframe1 = dataframe.dropna(subset=["Attendance", "Name"])
print(dataframe1)
出力:
Attendance Name Obtained Marks
0 60.0 Olivia NaN
2 80.0 Laura 82.0
4 95.0 Kevin NaN
Attendance
および Name
列に基づいて、欠損値のある行を削除します。他の列(ここでは Obtained Marks
)の値のみに欠損値がある場合、行はドロップされません。
コード例:inplace = True
を指定する DataFrame.dropna()
DataFrame.dropna()
は、inplace
が True
に設定されている場合、呼び出し元の DataFrame
をインプレースで変更します。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
}
)
dataframe1 = dataframe.dropna(inplace=True)
print(dataframe1)
出力:
None
パラメータは呼び出し元の DataFrame
をインプレースで変更し、None
を返します。