テービーテックのデータサイエンス

未経験リケジョがゼロからデータサイエンティストを目指す姿を記す奮闘記です。2019/12/05文系出身者が共同で更新を開始

TAG index

▲本日の関数==fillna()==

f:id:TBT_matsu:20200402152259p:plain

本日の関数:fillna()

こんにちは。
テービーテックの村松です。

本日ご紹介する関数は「fillna()」。
※※これまでご紹介した関数はこちら※※

どんな関数?

欠損値を任意の他の値に置換(穴埋め)する際に使います。

引数は?
fillna(self、value = None、method = None、axis = None、inplace = False、limit = None、downcast = None

よく指定する引数は、

  • self:置き換える値を指定します。
  • inplace:置き換えた値をそのまま元のデータに差し替えます(デフォルトはFalse)

使ってみよう

input
#使用するデータフレーム
df

f:id:TBT_matsu:20200409131704p:plain

コード

まずは全て0で埋めてみましょう。

df.fillna(0)

f:id:TBT_matsu:20200417172741p:plain
NaNが全て0に置き換わりました。
実際にデータフレームでよく使うのは列ごとの平均値(mean())・中央値(median())・最頻値(mode())を入れる方法でしょうか。
前処理として大活躍です。

df.fillna(df.mean())

f:id:TBT_matsu:20200417173000p:plain
それぞれの列の平均値が入りましたね。
データフレームの欠損値をを扱うときにこんな風によく使われる関数です。
なお、上の書き方だと元のdfは変わりありません。

df

f:id:TBT_matsu:20200409131704p:plain
しかし、inplace=Trueにすることで、

df.fillna(df.mean(), inplace=True)
df

f:id:TBT_matsu:20200417173000p:plain
このように元のデータフレームに直接置き換えることもできます。
元のデータを残しておきたいときは使わないようにしないといけませんね。

もっと詳しく!

ドキュメントへ!!