【Python・Pandas】データフレームの特定の列の合計値を取得する方法
データ分析をしていると、データフレーム(DataFrame)の中から特定の列だけの合計値を求めたい場面によく出会います。そんなときに便利なのが、Pandasのsum関数です。
合計を計算したい列をsum関数に渡すだけで、その列の合計値を簡単に取得できます。さらに、axis引数を指定すれば、列方向・行方向のどちらで集計するかも自由に制御可能です。
それでは、具体的なコード例を見ていきましょう。
サンプルコード
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 sum of 'Age' column is :")
print(my_df['Age'].sum())
実行結果
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 sum of 'Age' column is : 236
コードの解説
まず、必要なライブラリであるpandasをインポートし、利便性のために「pd」という別名(エイリアス)を付けています。
キーと値のペアからなる辞書を作成します。このときの値は、実体としてはSeries(シリーズ)というデータ構造です。
作成した辞書を、pandasライブラリの「DataFrame」関数に渡すことで、データフレームが生成されます。
作成したデータフレームをコンソールに出力し、中身を確認します。
今回は「Age」列の合計を計算します。
my_df['Age']のように対象の列を抽出し、そこへsum関数を適用することで合計値が得られます。計算結果(236)がコンソールに出力されます。
すべての数値列の合計を一括で取得する
個々の列を指定しなくても、データフレーム全体にsum関数を適用すれば、各数値列の合計をまとめて取得できます。文字列型の「Name」列は自動的に除外されます。
print(my_df.sum(numeric_only=True))
Age 236.00 value 232.77 dtype: float64
axis引数で集計方向を切り替える
sum関数はデフォルトでaxis=0(縦方向=列ごとの合計)として動作します。一方、axis=1を指定すると横方向、つまり行ごとの合計が計算されます。
# 行ごとの合計を計算する場合 print(my_df.sum(axis=1, numeric_only=True))
0 53.79 1 90.24 2 120.98 3 90.56 4 113.20 dtype: float64
このように、sum関数ひとつで列単位・行単位の集計を柔軟に行えます。データ分析で頻繁に使う基本操作なので、ぜひマスターしておきましょう。
-
Python・Pandasでデータフレームの列に含まれるNaNの数をカウントする方法
Pandasのデータフレームで特定の列に含まれるNaN(欠損値)の数をカウントしたい場合、isna()メソッドとsum()メソッドを組み合わせるのが最もシンプルで一般的な方法です。isna()は各要素がNaNかどうかを判定し、sum()でその結果を合計することでNaNの出現回数を求められます。必要なライブラリのインポートまず、PandasとNumPyをそれぞれ別名(エイリアス)付きでインポートします。import pandas as pd import numpy as npサンプルデータフレームの作成次に、テスト用のデータフレームを作成します。ここでは「Units_Sold」列に意図的にNa
-
【Python】Pandas DataFrameからnull(欠損値)行を削除する方法|dropna()の使い方
PandasのDataFrameからnull(NaN)行を削除するには、dropna()メソッドを使用します。この記事では、NaNを含むCSVファイルを読み込み、dropna()で欠損値を含む行を取り除くまでの手順を、サンプルコードと実行結果とともにわかりやすく解説します。前提:NaNを含むCSVファイル今回の例では、一部にNaN(null値)が含まれる以下のようなCSVファイル(CarRecords.csv)を使用します。手順1:read_csv()でCSVファイルを読み込むまずpandasをインポートし、read_csv()を使ってCSVファイルを読み込みます。ここではデスクトップ上に保存