男のブログ俺は中卒だ。学歴なんて無くても生きていける。プログラミングpythonsuckamon今回は、pandasデータフレームのlocを用いた欠損値の補完についての応用的な使い方を紹介する。サンプルデータフレームの用意サンプルとして以下のようなデータフレームを用意した。単純な売上データをデータフレーム化したものだ。900.0このデータフレームの金額情報(price列)にはいくつかの欠損値NaNが含まれている。今回は、この欠損値を正しい金額で穴埋めする方法を紹介する。欠損値が含まれている行を調べるまず、price列に欠損値が含まれている行を調べるため、isnull関数を使って変数に保存しておく。Trueとなっている行が、金額情報の欠損を表す。bool同じ商品で金額が正しく入った行を利用して補完する少々ややこしいコードではあるが、for文とlocを使って金額が正しく入力されている行を利用して、欠損値を補完していく。900.0データフレームのlocは、任意の条件に合致するデータを抽出する関数だ。1行目のfor文では、flg_is_nullがTrueの行。欠損値が含まれている行を抽出し、そのうちitem_nameのみを切り出している。item_nameの重複を排除するようunique関数も併用している。これで「重複を除く、欠損値が含まれている商品名」を抽出できた。後はこれをlist関数で配列化し、ループ処理をかけているだけだ。2行目のlocでは、「~」でTrue/Falseを反転させ、金額が正しく入力されている行を、尚且つ同じ商品名である行を抽出し、その金額を変数priceに保存している。3行目で、欠損値のある行に保存した変数priceを代入し、正しい金額への補完を行っている。このようにloc関数を使いこなすことで、整合性のない汚いデータをクリーンアップすることができる。日付範囲を生成するdate_rangeメソッドプロフィール中卒男15歳で熊本から単身大阪へ渡り、囲碁棋士になるための修行を積む。その後、紆余曲折ありプログラミングを学び職とする。現在プログラミングや統計、機械学習の勉強に合わせ、双子の育児に奮闘中。