みなさんこんにちは。
今日は私が知らなくて焦った、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の存在に気づかなかったんです。
ここで、dropna=Falseを指定すると、Nanもカウントしてくれます。
普通にNanは無いと思って数をクライアントに伝えていたので、やっちまったってことですね。
まとめ
groupbyで値のカウントをするときは、初期値でNanが除外されることを覚えておきましょう。
それでは!
コメント