【恐怖】pandasのgroupbyの怖い話【知らなかった】

スポンサーリンク
python Python

みなさんこんにちは。

今日は私が知らなくて焦った、pandasの話をしようと思います。

もし私と同じように知らないという人がいたら、被害を受けないように知っておいていただければと思います。

結論

df.groupby("something", dropna=False).size().to_frame()

Groupbyを実行するときに、グルーピング対象の列にあるNanは対象外になります。

この例ではdropna=Falseを入れることでNanの数も含めたカウント数を表示してくれます。

何が問題なのか

例えばこのようにnanがあるsomething列の値毎のカウント数を出したいとする。

これに、dropnaを指定しないでgroupbyを行うと、

df.groupby("something").size().to_frame("count")

Nanは無視されます(怖

私は列にNanがあると知らないままカウントしていて、結果Nanの存在に気づかなかったんです。

え、Nanいるじゃん…

ここで、dropna=Falseを指定すると、Nanもカウントしてくれます。

これが欲しかった

普通にNanは無いと思って数をクライアントに伝えていたので、やっちまったってことですね。

まとめ

groupbyで値のカウントをするときは、初期値でNanが除外されることを覚えておきましょう。

それでは!

コメント

タイトルとURLをコピーしました