【小ネタ】Jupyter Notebookでpandasの.size()を綺麗に表示する

スポンサーリンク
python Python

みなさんこんにちは!

今日は小ネタです。

引き続き結論ファースト、論よりソースで行きたいと思います。

Pythonコード

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

to_frameをつけることでデータフレームに直るのでデータフレームと同じように表示されます。

知らなかった…

.size()にto_frame()をつけた表示結果のサンプル

サンプルデータの用意

import random
sample_dict = {}
kind = ["a", "b", "c", "d"]
for i in range(1, 11):
  sample_dict[i] = random.choice(kind)

df = pd.DataFrame.from_dict(sample_dict, orient="index", columns=["kind"])
df.groupby("kind").size().plot(kind="bar")

kindがa, b, c, dである列が何個か入っている1次元のDataFrameがあるとします。

.size()関数で出力すると

このように表示されてしまいます。DataFrameを出力した時のように表示されてくれません。

.size().to_frame()で出力すると

DataFrameで結果を受け取れるので綺麗に表示されます。

ちなみに、to_frame()にはカラム名を引数にとることができ、今回は”count”というカラム名をカウント数列につけてみました。つけない場合、カラム名は「0」になります。

まとめ

.size()関数の結果が綺麗に出てくれないので回りくどくcount()関数でやりくりをしていましたが、これでそのような回りくどいことは必要なくなりました。

参考になればと思います。

それでは!

追記:groupbyのこんな仕様知ってた?

知らないとまずいことになる…かも?ということがあったので書きました。

コメント

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