【Python・pandas】データフレームの特定の列の平均値を求める方法
データ分析を行っていると、数値型の特定の列についてその平均値を取得したい場面によく出くわします。そんなときに活躍するのが「mean」関数です。
平均を計算したい列は、データフレームに対して列名をインデックスとして指定し、ドット演算子(.)を使って mean() 関数を呼び出すだけで求められます。また、列名の代わりに列の位置(インデックス番号)を指定して平均を計算することも可能です。
なお、「平均」とは、すべての値の合計をデータセット内の値の総数で割った値のことです。pandas の mean() 関数は、デフォルトでは欠損値(NaN)を自動的に除外して計算するため、欠損値を含む列でも安心して使えます。
それでは、実際の例を見てみましょう。
サンプルコード
import pandas as pd
my_data = {'Name':pd.Series(['Tom','Jane','Vin','Eve','Will']),'Age':pd.Series([45, 67, 89, 12, 23]),'value':pd.Series([8.79,23.24,31.98,78.56,90.20])}
print("The dataframe is :")
my_df = pd.DataFrame(my_data)
print(my_df)
print("The mean of column 'Age' is :")
print(my_df['Age'].mean())
print("The mean of column 'value' is :")
print(my_df['value'].mean())出力結果
The dataframe is : Name Age value 0 Tom 45 8.79 1 Jane 67 23.24 2 Vin 89 31.98 3 Eve 12 78.56 4 Will 23 90.20 The mean of column 'Age' is : 47.2 The mean of column 'value' is : 46.553999999999995
コードの解説
まず必要なライブラリをインポートし、扱いやすいようにエイリアス名(
pd)を付けています。キーと値のペアからなる辞書を作成しています。ここでの各値は、実体としては Series というデータ構造です。
この辞書は、後ほど pandas ライブラリの「
DataFrame」関数に引数として渡されます。作成したデータフレームをコンソールに出力して内容を確認します。
ここでの目的は、数値を含む特定の列(「Age」列と「value」列)の平均を計算することです。
ドット演算子を使って、列名を指定したうえでデータフレームに対して「
mean」関数を呼び出します。それぞれの数値列の平均値がコンソールに出力されます。「Age」列の平均は 47.2、「value」列の平均は約 46.554 であることがわかります。
補足:列の位置を指定して平均を求める方法
列名ではなく、列の位置(0始まりのインデックス番号)を指定したい場合は、iloc を使って次のように記述できます。
# 2列目(index=1)の「Age」列の平均を求める print(my_df.iloc[:, 1].mean())
このように、mean() 関数を使えば、列名指定でも位置指定でも、簡単に特定の列の平均値を算出できます。統計量をまとめて確認したい場合は df.describe() を使うと、平均以外の基本統計量も一度に確認できて便利です。
-
Pythonでホームディレクトリを取得する方法|os.path.expanduserとpathlibの使い方
Pythonでホームディレクトリを取得する基本の方法Pythonでユーザーのホームディレクトリ(ホームフォルダ)のパスを取得したい場合は、標準ライブラリのosモジュールに含まれるos.path.expanduser(~)を使うのが最もシンプルで定番の方法です。この関数は、パスの中に~(チルダ)が含まれている場合、それを実際のホームディレクトリのパスに展開してくれます。たとえば~/Documents/my_folder/のように、より長いパスの一部として使うことも可能です。また、パスに~が含まれていない場合は、渡されたパスをそのまま変更せずに返します。os.path.expanduserの基本的
-
【初心者向け】Pythonで文字列の長さを取得する方法をわかりやすく解説
Pythonで文字列の長さを取得する基本:len()関数Pythonには、文字列やリスト、タプルといった複合オブジェクトの長さ(要素数)を取得できる組み込み関数 len() が用意されています。文字列の長さを知りたい場合は、対象の文字列をそのまま len() の引数として渡すだけでOKです。print(len(abcdefghijklmnopqrstuvwxyz))出力結果:26変数に格納した文字列の長さを取得する実際の開発では、変数に代入した文字列の長さを調べる場面が多いでしょう。次のように、変数を len() に渡すだけで簡単に取得できます。text = Hello, Python! pr