Pandasデータからヒストグラムが描けない場合にはnumpyのflatten() を使おう

AI

Pandasデータからある項目をスライスしてその値でヒストグラムを作成するときにうまく行かなくて困ったことがありませんでしょうか。
具体的には次のようなデータがあったとします。

このデータからグレードの列を抜き出してヒストグラムを描くとします。

スポンサーリンク

うまく行く場合

次のようにデータをスライスするとseries形式のデータとなります。

grade = data['グレード']

グラフを描きます。

plt.title('bens')
plt.grid(True)
plt.ylabel('count')
plt.xlabel('grade')

plt.hist(g,bins=5)
plt.show()

この場合は次のようになりうまくいきます。

うまく行かない場合

列の見出しに何らか問題のある文字列が使われてうまく列の指定ができない場合、ilocを使います。
この時が問題です。

g = data.iloc[:,5:6]

グラフを描きます。

plt.title('bens')
plt.grid(True)
plt.ylabel('count')
plt.xlabel('grade')

plt.hist(g,bins=5)
plt.show()

この場合はヒストグラムが正確に描かれません。

この原因はデータがseries形式ではなくDataFrame形式になっているからです。

このような、場合は一旦nd.array形式にしてからflatten()を使うと1次元のlist形式になってくれます。
これで正しくヒストグラムが描かれます。

これはヒストグラムが1次元のリストかPandasならseries形式のものである必要があるためです。

スポンサーリンク

お勧め書籍

AI関連

Python

JavaScript

HTML CSS関連

統計学

AI Tips
スポンサーリンク
dororoをフォローする
IT工房|AI入門とWeb開発
タイトルとURLをコピーしました