
あい
今回はpythonでcsvから
ファイルを読み込んで
ヒストグラムを自動で
出力してくれる
プログラムを実装して
いきます
[PR]※本サイトには、プロモーションが含まれています

目次
ヒストグラム(histogram)とは?
連続データの分布を
視覚的に表現するためのグラフ
縦軸を度数、横軸を各区間に分け
グラフを作ります。

Pandasを利用してCSVからデータを読み込む

あい
csvから
ファイルの
読み込み方法を
教えます!
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('//content//heights.csv')
print(df.head(5))
pythonのpandasライブラリを利用して
csvを読み込むコードです
df = pd.read_csv('//content//heights.csv')
でデータフレームdfに
データを格納します
かっこの中には必ず
上記のようにファイルアドレスを挿入する
print(df.head(5))
でデータフレーム内のデータ5行目まで
確認することが出来ます


あい
データが入ってる!
データを用意する
適当に作った
サンプルサイズ100の
各国の成人の身長データを
csvに用意します
Category | 平均値 | 標準偏差 | データ |
Japan_man | 170.7 | 6.4 | 正規分布 |
Japan_woman | 158.8 | 5.8 | 正規分布 |
US_man | 176.1 | 7.1 | 正規分布 |
US_woman | 162 | 7.3 | 正規分布 |
こんな感じのデータを保存します

今回作るヒストグラムとコード
csvファイルを読み込み
[‘Japan_man’,’Japan_woman’,’US_,man’,’US_woman’] を
一つずつコードにしていく
ヒストグラムを実装します
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('//content//heights.csv')
print(df.head(5))
# データのカラム情報をリストに保管する
ヒストグラムを実装する
import pandas as pd
import matplotlib.pyplot as plt
# CSVファイルを読み込む
df = pd.read_csv('//content//heights.csv')
print(df.head(5))
# ヒストグラムを実装するコード
for column in df.columns:
plt.figure(figsize=(8, 6))
plt.hist(df[column], bins=20, color='skyblue', edgecolor='black')
plt.title(f'Histogram of {column}')
plt.xlabel(column)
plt.ylabel('Frequency')
plt.grid(True)
plt.show()
出力は




コードの解説
最初にデータをcsvから取得する
コードの説明をします
import pandas as pd
import matplotlib.pyplot as plt
# CSVファイルを読み込む
df = pd.read_csv('//content//heights.csv')
print(df.head(5))
出力結果を確認してみます

次に取得したデータをつかってヒストグラム
を実装するコードの説明をします
import pandas as pd
import matplotlib.pyplot as plt
# CSVファイルを読み込む
df = pd.read_csv('//content//heights.csv')
print(df.head(5))
# カラムの数だけループしてヒストグラムを作成
for column in df.columns:
plt.figure(figsize=(8, 6))
plt.hist(df[column], bins=20, color='skyblue', edgecolor='black')
plt.title(f'Histogram of {column}')
plt.xlabel(column)
plt.ylabel('Frequency')
plt.grid(True)
plt.savefig(f'//content//{column}_histogram.png') # ファイルをPNGで保存
plt.show()
forループを利用して
ヒストグラムを実装しています
1回のループで
1列のヒストグラムを作成しています

plt.savefig(f'//content//{column}_histogram.png') # ファイルをPNGで保存
でファイルを保存して完了です。
ヒストグラムを重ねる
ヒストグラムを重ねて表示するには、
plt.hist()
を複数回呼び出して同じグラフに重ねます
import pandas as pd
import matplotlib.pyplot as plt
# CSVファイルを読み込む
df = pd.read_csv('//content//heights.csv')
print(df.head(5))
# カラムの数だけループしてヒストグラムを作成
for column in df.columns:
plt.hist(df[column], bins=20, alpha=0.5, label=column)
plt.title('Histogram')
plt.xlabel('value')
plt.ylabel('Frequency')
plt.grid(True)
plt.savefig('//content//histogram.png') # ファイルをPNGで保存
plt.legend()
plt.show()
