Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas - 合計値に基づいてDataFrameから行をフィルタリングする方法

はじめに

PandasのDataFrameでは、行ごとの合計値を条件としてフィルタリングを行うことができます。本記事では、3人の生徒の点数データを例に、「各行の合計点が200を超える」行だけを抽出する方法を解説します。逆に、合計が200未満の行を除外したい場合にも同じ手法が使えます。

DataFrameの作成

まず、Jacob・Ted・Jamieの3人の生徒の点数を格納した、3列構成のDataFrameを作成します。

import pandas as pd

# 3列のDataFrameを作成
dataFrame = pd.DataFrame({
    'Jacob_Marks': [95, 90, 70, 85, 88],
    'Ted_Marks': [60, 50, 65, 85, 70],
    'Jamie_Marks': [77, 76, 60, 45, 50]
})

print("元のDataFrame:\n", dataFrame)

合計値に基づくフィルタリングの方法

行方向の合計は sum(axis=1) で計算できます。この値と比較条件を組み合わせたブールマスクをDataFrameに渡すことで、条件を満たす行だけを簡単に抽出できます。

# 各行の合計が200を超える行のみを取得
dataFrame = dataFrame[dataFrame.sum(axis=1) > 200]

完全なコード例

以下に、作成からフィルタリングまでの一連の処理をまとめた完全なコードを示します。

import pandas as pd

# 3列のDataFrameを作成
dataFrame = pd.DataFrame({
    'Jacob_Marks': [95, 90, 70, 85, 88],
    'Ted_Marks': [60, 50, 65, 85, 70],
    'Jamie_Marks': [77, 76, 60, 45, 50]
})

print("元のDataFrame:\n", dataFrame)

# 行ごとの合計が200を超える行のみを抽出
dataFrame = dataFrame[dataFrame.sum(axis=1) > 200]

print("更新後のDataFrame:\n", dataFrame)

実行結果

上記のコードを実行すると、次のような出力が得られます。

元のDataFrame...
    Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60
1           90           76         50
2           70           60         65
3           85           45         85
4           88           50         70

更新後のDataFrame...
    Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60
1           90           76         50
3           85           45         85
4           88           50         70

出力を確認すると、インデックス2の行(合計195点)が除外され、合計が200を超える4つの行だけが残っていることがわかります。このように sum(axis=1) とブールインデックスを組み合わせることで、行単位の合計値に基づいた柔軟なデータ抽出が可能になります。

  1. Python Pandas入門 – データフレームから条件に合う行のサブセットを抽出する方法

    Pandasのデータフレームから行のサブセット(一部の行)を取得するには、条件式を使ってデータを絞り込みます。この手法は「ブールインデックス参照」と呼ばれ、データ分析で最もよく使われる操作のひとつです。 使用するCSVファイル ここでは、Microsoft Excelで開いた次のようなCSVファイル(SalesData.csv)を例にします。車種名(Car)、登録価格(Reg_Price)、販売台数(Units)の3つの列を持つデータです。 CSVファイルをデータフレームとして読み込む まず、read_csv()メソッドを使って、CSVファイルのデータをPandasのデータフレームに読み込み

  2. 【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ファイルを読み込みます。ここではデスクトップ上に保存