Pythonの言語は、今ではEXCELでも利用できるようになっています。
EXCELでのPython利用は、基本的にはデータ分析の分野で利用することになるでしょう。
Pythonには、データ分析に役立つ「Pandas」というライブラリがあります。
これまでにも概要をまとめた記事(リンク)がありますが、「データフレーム」という形で「データ」を扱えるのが特徴です。
今回は「Pandas」の中でも、データ分析系のメソッドについて、まとめようと思います。
【予備知識】集約関数
本記事を記載する中で、利用する用語に、「集約関数」があります。
集約関数とは、複数のデータを一つにまとめる(集約する)ために使用される関数です。
その中には、データ分析にも役立つようなものがあります。
集約関数の具体的な例を、以下にまとめておきます。
集約関数 | 説明 |
sum() | 合計値を算出します。 |
mean() | 平均値を算出します。 |
prod() | 積を算出します。 |
median() | 中央値を取得します。 |
max() | 最大値を取得します。 |
min() | 最小値を取得します。 |
count() | NaNではない値の個数をカウントします。 |
std() | 標準偏差を算出します。 |
var() | 分散を算出します。 |
first() | 最初の値を取得します。 |
last() | 最後の値を取得します。 |
カスタム関数
上記の他、「カスタム関数」というものがあります。
標準搭載の関数では対応しきれない場合に、ユーザーが自由に作成・定義した関数です。
「def」を使った関数(リンク)もありますが、より簡易的な定義方法があります。
lambda関数を用いる方法で、構文は以下になります。
以下に、2変数の平均を計算するlambda関数の例を記載します。
コードサンプル:
ave_value = lambda a, b: (a + b)/2
print(ave_value(1, 2))
実行結果:
1.5
データのグループ化
以下のメソッドでは、指定した列の値でデータフレームのデータを「グループ化」します。
また、以下のように記述することで、グループ化した列に対して、前述の集約関数を用いた集計することができます。
なお、データフレームの列名を指定して適用する際は、以下のようにします。
コードサンプル:
import pandas as pd
# データフレームを定義
data = {‘City’: [‘Tokyo’, ‘Osaka’, ‘Tokyo’, ‘Osaka’, ‘Osaka’],
‘Year’: [2023, 2023, 2024, 2025, 2024],
‘Sales’: [100, 200, 300, 400, 200]}
df = pd.DataFrame(data)# City列を基準として、「Sales列の合計値」「Sales列の平均値」「他の列のNaNではない数」を算出
group_sum = df.groupby(‘City’)[‘Sales’].sum()
group_mean = df.groupby(‘City’)[‘Sales’].mean()
group_count = df.groupby(‘City’).count()# 各算出結果を表示
print(group_sum)
print(“”)
print(group_mean)
print(“”)
print(group_count)
実行結果:
City
Osaka 800
Tokyo 400
Name: Sales, dtype: int64City
Osaka 266.666667
Tokyo 200.000000
Name: Sales, dtype: float64Year Sales
City
Osaka 3 3
Tokyo 2 2
ピボットテーブルの利用
以下のメソッドでは、データフレームのデータを「ピボットテーブル」に変換します。
また、各引数は以下のように定められています。
引数 | 説明 |
index | 行インデックスとして使用する列 |
columns | 列名として使用する列 |
values | 集計する値 |
aggfunc | 適用する集約関数 |
コードサンプル:
import pandas as pd
# データフレームを定義
data = {‘City’: [‘Tokyo’, ‘Osaka’, ‘Tokyo’, ‘Osaka’, ‘Osaka’],
‘Year’: [2023, 2023, 2024, 2025, 2023],
‘Sales’: [100, 200, 300, 400, 200]}
df = pd.DataFrame(data)# ピボットテーブルを作成(行「City」、列「Year」、集約する値「Sales」、集約方法「sum」)
pivot = df.pivot_table(index=’City’, columns=’Year’, values=’Sales’, aggfunc=’sum’)print(pivot)
実行結果:
Year 2023 2024 2025
City
Osaka 400.0 NaN 400.0
Tokyo 100.0 300.0 NaN
相関関係を算出
以下のメソッドでは、データフレームのデータを「相関関係を示す行列」に変換します。
相関関係はデータ分析を行う際には重要な要素の1つとなっており、変数間の相関関係を分析するのに便利です。
コードサンプル:
import pandas as pd
# データフレームを定義
data = {‘X’: [1, 2, 3, 4, 5],
‘Y’: [2, 4, 8, 16, 32],
‘Z’: [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
# 相関行列を計算
correlation = df.corr()print(correlation)
実行結果:
X Y Z
X 1.000000 0.933257 -1.000000
Y 0.933257 1.000000 -0.933257
Z -1.000000 -0.933257 1.000000
まとめ
今回は、Pythonで扱えるライブラリの「Pandas」のデータ分析系のメソッドについてまとめてみました。
他にも多くのメソッドが存在するため、複数の記事に渡って解説しています。
他の記事も、ぜひ参考にしてみて下さい。