【Python】Pandasのメソッドの紹介~データ分析系②~

Pythonの言語は、今ではEXCELでも利用できるようになっています。

EXCELでのPython利用は、基本的にはデータ分析の分野で利用することになるでしょう。

Pythonには、データ分析に役立つ「Pandas」というライブラリがあります。

これまでにも概要をまとめた記事(リンク)がありますが、「データフレーム」という形で「データ」を扱えるのが特徴です。

今回は「Pandas」の中でも、データ分析系のメソッドについて、まとめようと思います。

スポンサーリンク

【予備知識】集約関数 

本記事を記載する中で、利用する用語に、「集約関数」があります。

集約関数とは、複数のデータを一つにまとめる(集約する)ために使用される関数です。

その中には、データ分析にも役立つようなものがあります。

集約関数の具体的な例を、以下にまとめておきます。

集約関数説明
sum() 合計値を算出します。
mean() 平均値を算出します。
prod() 積を算出します。
median() 中央値を取得します。
max() 最大値を取得します。
min() 最小値を取得します。
count() NaNではない値の個数をカウントします。
std() 標準偏差を算出します。
var() 分散を算出します。
first() 最初の値を取得します。
last() 最後の値を取得します。

カスタム関数

上記の他、「カスタム関数」というものがあります。

標準搭載の関数では対応しきれない場合に、ユーザーが自由に作成・定義した関数です。

「def」を使った関数(リンク)もありますが、より簡易的な定義方法があります。

lambda関数を用いる方法で、構文は以下になります。

lambda 引数1, 引数2, …: 式
「引数」: 関数に渡す引数、「式」:関数が返す値の計算式。

以下に、2変数の平均を計算するlambda関数の例を記載します。

コードサンプル:

ave_value = lambda a, b: (a + b)/2
print(ave_value(1, 2))

実行結果:

1.5

データのグループ化

以下のメソッドでは、指定した列の値でデータフレームのデータを「グループ化」します。

groupby()

また、以下のように記述することで、グループ化した列に対して、前述の集約関数を用いた集計することができます。

groupby().集約関数

なお、データフレームの列名を指定して適用する際は、以下のようにします。

groupby(“基準とする列名”)[‘列名’].集約関数

コードサンプル:

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: int64

City
Osaka 266.666667
Tokyo 200.000000
Name: Sales, dtype: float64

            Year   Sales
City
Osaka   3     3
Tokyo   2      2

ピボットテーブルの利用

以下のメソッドでは、データフレームのデータを「ピボットテーブル」に変換します。

pivot_table(index, columns, values, aggfunc)

また、各引数は以下のように定められています。

引数説明
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

相関関係を算出

以下のメソッドでは、データフレームのデータを「相関関係を示す行列」に変換します。

corr()

相関関係はデータ分析を行う際には重要な要素の1つとなっており、変数間の相関関係を分析するのに便利です。

相関関係が強い(値が「1」もしくは「-1」に近い)ほど、直線に近い形で分布が広がっていることになります。逆に相関関係が弱い(値が「0」に近い)ほど無相関となり、広く分布していることになります。

コードサンプル:

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」のデータ分析系のメソッドについてまとめてみました。

他にも多くのメソッドが存在するため、複数の記事に渡って解説しています。

他の記事も、ぜひ参考にしてみて下さい。

スポンサーリンク