PythonでMySQLのAVG()関数を使う方法をわかりやすく解説
AVG()関数は、MySQLに用意されている集計関数(算術関数)の一つです。名前の通り、テーブル内の数値型カラムの平均値を取得するために使用します。本記事では、PythonからMySQLを操作してAVG()関数を使う方法を、具体的なコード例とともに解説します。
AVG()関数の基本構文
SELECT AVG(column_name) FROM table_name
AVG()関数は指定したカラムの値の平均を計算し、単一の結果として返します。NULL値が含まれる場合、NULLは計算対象から除外される点にも注意してください。
PythonでAVG()関数を使用する手順
PythonからMySQLデータベースに接続し、AVG()関数を実行するには、以下の手順に従います。
mysql.connectorモジュールをインポートする
connect()メソッドを使ってデータベースとの接続を確立する
cursor()メソッドでカーソルオブジェクトを作成する
適切なSQL文でクエリを作成する
execute()メソッドでSQLクエリを実行する
fetchall()などで結果を取得する
接続を閉じる
サンプルテーブル
ここでは、次のような「Students」テーブルを例に説明します。
Students
+----------+-----------+ | name | marks | +----------+-----------+ | Rohit | 62 | | Rahul | 75 | | Inder | 99 | | Khushi | 49 | | Karan | 92 | +----------+-----------+
このテーブルから、生徒たちの点数(marks)の平均値を取得することを目標とします。
実装例
import mysql.connector
db = mysql.connector.connect(
host="your host",
user="your username",
password="your password",
database="database_name"
)
cursor = db.cursor()
query1 = "SELECT AVG(marks) FROM Students"
cursor.execute(query1)
avg = cursor.fetchall()
print("平均点 :", avg)
db.close()コードのポイント
connect():ホスト名、ユーザー名、パスワード、データベース名を指定してMySQLサーバーに接続します。
cursor():SQL文を実行するためのカーソルオブジェクトを生成します。
execute():作成したクエリ「SELECT AVG(marks) FROM Students」を実行します。
fetchall():実行結果をすべて取得し、タプル形式で返します。
close():処理完了後は必ず接続を閉じてリソースを解放しましょう。
実行結果
平均点 : [(Decimal('75.4'),)]上記のように、Studentsテーブルの点数の平均値「75.4」が取得できました。結果はタプルのリスト形式で返されるため、実際のアプリケーションではavg[0][0]のようにインデックスを指定して値を取り出すのが一般的です。
まとめ
AVG()関数を使えば、MySQL側で簡単に平均値を計算できます。大量のデータを扱う場合も、Python側で計算するよりもデータベース側で集計した方が効率的です。SUM()やCOUNT()などの他の集計関数と組み合わせることで、より高度なデータ分析も可能になります。
-
Pythonのitertools.accumulate関数で累積和(プレフィックスサム)配列を作る方法
Pythonでは、リスト(配列)の累積和(プレフィックスサム)を簡単に求めることができます。標準ライブラリのitertoolsモジュールに含まれるaccumulate()関数を使えば、先頭の要素から順に値を加算していった「走査合計(ランニングトータル)」を返すイテレータを生成できます。 itertools.accumulate(iterable[, func])は、モジュール内の他の関数と同様に、イテレータを構築して返します。そのため、取得したイテレータにはforループやlist()など、ストリームを消費する処理を通じてアクセスします。デフォルトの動作は要素の合計(加算)ですが、扱える要素はD
-
Pythonの%演算子(モジュロ演算子)とは?剰余計算の基本をわかりやすく解説
Pythonの%演算子とは Pythonにおける「%(パーセント)」は、除算の余りを返す算術演算子です。「モジュロ演算子」あるいは「剰余演算子」と呼ばれ、複素数を除く数値型(int型やfloat型など)のオペランドに対して使用できます。 割り算の結果そのものではなく、「割った後に余る値」を求めたい場合に使う演算子である点がポイントです。 基本的な使い方とコード例 以下は、整数と浮動小数点数に対して%演算子を使った実際の実行例です。 >>> a=10 >>> a%3 1 >>> a%5 0 >>> b=12.5 >&