こんにちは、堀井です。
Pythonはデータ解析に非常に適したプログラミング言語であることはよく知られています。
エンジニアであれば知っていて当然のような言語ですが、仕事で使うこともなかったので、実際どのように使うのか?何ができるのか?よく分かってません。
そこで今回はPythonを使った基本的なデータ解析を行ってみようと思います。
0. 環境
Mac OS
Python 3.8.5
pip 20.1.1
1. ライブラリのインストール
今回使用するライブラリは「pandas」「matplotlib」「seaborn」です。
pip3 install pandas matplotlib seaborn
2. データの読み込み
解析するデータを読み込みます。
analize.py
import pandas as pd
# CSVファイルの読み込み
data = pd.read_csv('sales.csv')
データは以下のような販売データを使用します。
sales.csv
ID,Date,Product,Category,Sales,Quantity
1,2025-01-01,Widget A,Category 1,100.0,2
2,2025-01-02,Widget B,Category 2,150.0,1
3,2025-01-03,Gadget A,Category 1,200.0,3
4,2025-01-04,Gadget B,Category 2,250.0,4
5,2025-01-05,Widget A,Category 1,300.0,1
6,2025-01-06,Widget B,Category 2,350.0,2
7,2025-01-07,Gadget A,Category 1,400.0,3
8,2025-01-08,Gadget B,Category 2,450.0,4
9,2025-01-09,Widget A,Category 1,500.0,5
10,2025-01-10,Widget B,Category 2,550.0,2
3. データの基本的な確認
データの基本的な情報を確認します。
analize.py
import pandas as pd
# CSVファイルの読み込み
data = pd.read_csv('sales.csv')
# データの先頭5行を表示
print(data.head())
# データの情報を表示
print(data.info())
# 基本統計量を表示
print(data.describe())
結果
4. データの可視化
matplotlibとseabornを使ってデータを可視化してみます。
ヒストグラム
まずは各製品の販売数の分布をヒストグラムで表示してみます。
analize.py
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# CSVファイルの読み込み
data = pd.read_csv('sales.csv')
# ヒストグラムの作成
plt.figure(figsize=(10, 6))
sns.histplot(data['Sales'], bins=30, kde=True)
plt.title('Histogram of Sales')
plt.xlabel('Sales')
plt.ylabel('Frequency')
plt.show()
結果
データがいい感じすぎて綺麗な形にはなってしまいましたが、いい感じに表示されました。
カテゴリごとの販売数の比較
次にカテゴリごとの販売数の比較を棒グラフで表示してみます。
analize.py
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# CSVファイルの読み込み
data = pd.read_csv('sales.csv')
# カテゴリごとの総販売数を計算
category_sales = data.groupby('Category')['Sales'].sum().reset_index()
# 棒グラフの作成
plt.figure(figsize=(10, 6))
sns.barplot(x='Category', y='Sales', data=category_sales)
plt.title('Total Sales by Category')
plt.xlabel('Category')
plt.ylabel('Total Sales')
plt.show()
結果
分かりやすい図が表示されました。
まとめ
今回はPythonを使った基本的なデータ解析を行ってみました。
数行のコードで綺麗な図がすぐに表示されるのでいいですね。
実際にはもっとでかいデータで細かい調整を行いながら解析するのだと思うので、これを機にもう少し深く勉強していきたいなと感じました。
以上、堀井でした。