みなさんこんにちは!
今日は小ネタです。
引き続き結論ファースト、論よりソースで行きたいと思います。
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のこんな仕様知ってた?
知らないとまずいことになる…かも?ということがあったので書きました。
コメント