パンダ-空のセルのクリーニング
空のセル
空のセルは、データを分析するときに間違った結果をもたらす可能性があります。
行を削除する
空のセルを処理する1つの方法は、空のセルを含む行を削除することです。
データセットは非常に大きくなる可能性があり、いくつかの行を削除しても結果に大きな影響はないため、これは通常は問題ありません。
例
空のセルのない新しいデータフレームを返します。
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
クリーニングの例では、「dirtydata.csv」というCSVファイルを使用します。
dirtydata.csvをダウンロードします。またはdirtydata.csvを開きます
注:デフォルトでは、dropna()
メソッドは新しいDataFrameを返し、元のDataFrameを変更しません。
元のDataFrameを変更する場合は、
inplace = True
引数を使用します。
例
NULL値を持つすべての行を削除します。
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace = True)
print(df.to_string())
注:これで、dropna(inplace = True)
は新しいDataFrameを返しませんが、元のDataFrameからNULL値を含むすべての行を削除します。
空の値を置き換える
空のセルを処理する別の方法は、代わりに新しい値を挿入することです。
このように、いくつかの空のセルのために行全体を削除する必要はありません。
このfillna()
メソッドを使用すると、空のセルを次の値に置き換えることができます。
例
NULL値を数値130に置き換えます。
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
指定された列に対してのみ置換
上記の例では、データフレーム全体のすべての空のセルが置き換えられます。
1つの列の空の値のみを置き換えるには、DataFrameの列名を指定します。
例
「カロリー」列のNULL値を数値130に置き換えます。
import pandas as pd
df = pd.read_csv('data.csv')
df["Calories"].fillna(130, inplace = True)
平均、中央値、または最頻値を使用して置換
空のセルを置き換える一般的な方法は、列の平均値、中央値、または最頻値を計算することです。
Pandasは、mean()
median()
およびmode()
メソッドを使用して、指定された列のそれぞれの値を計算します。
例
MEANを計算し、空の値をそれに置き換えます。
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace = True)
平均=平均値(すべての値の合計を値の数で割ったもの)。
例
MEDIANを計算し、空の値をそれに置き換えます。
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
中央値=すべての値を昇順で並べ替えた後の中央の値。
例
MODEを計算し、空の値をそれに置き換えます。
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)
モード=最も頻繁に表示される値。