15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pandasで条件に合致する行の欠損値のみを置換する

Last updated at Posted at 2018-05-23

機械学習するためのデータの欠損値(NaN)を置換する方法のメモ。

ある列の欠損値を全て同じ値で置換するだけであればfillna()を使用すれば簡単にできるが、別の列の値によって置換する欠損値を変えたい場合は少し工夫が必要。

<例>
KaggleのTitanicチュートリアルのデータで、年齢の欠損値を平均値で置換する。

(A)全ての欠損値を全体の平均値で置換する場合

import pandas as pd

# データの読み込み 
train = pd.read_csv("train.csv")

# 年齢の欠損値を全体の平均値で置換
train.loc[:,"Age"] = train["Age"].fillna(train["Age"].mean())

(B)性別(Sex)が男(male)の行の欠損値を男性の平均値で置換する場合

import pandas as pd

# データの読み込み 
train = pd.read_csv("train.csv")

# 男性の欠損値を男性の平均値で置換
train.loc[(train["Sex"].values == "male") & (train["Age"].isnull()), "Age"] = train.query("Sex == 'male'")["Age"].mean()
15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?