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

Python Pandas – 列の合計値に基づいてDataFrameをフィルタリングする方法

列の合計値に基づいてDataFrameをフィルタリングするには、loc()メソッドを使用します。この記事では、各学生の点数を合計し、合計点が400点(80%)を超える学生の列のみを抽出する例を紹介します。

DataFrameの作成

まず、学生の成績データを含むDataFrameを作成します。ここでは3人の学生、つまり3つの列の点数データを用意します。

import pandas as pd

dataFrame = pd.DataFrame({
   'Jacob_Marks': [95, 90, 75, 85, 88],
   'Ted_Marks': [60, 50, 65, 85, 70],
   'Jamie_Marks': [77, 76, 65, 45, 50]
})

列の合計に基づくフィルタリング

次に、合計点が400を超える学生の列だけを取得します。sum(axis=0)で各列(各学生)の合計点を計算し、その結果を条件としてloc()に渡します。

dataFrame = dataFrame.loc[:, dataFrame.sum(axis=0) > 400]

コードのポイント

  • dataFrame.sum(axis=0): axis=0を指定すると、列ごと(縦方向)に合計が計算されます。
  • > 400: 各列の合計が400より大きいかどうかを判定するブール値(True/False)のマスクを生成します。
  • loc[:, 条件]: マスクがTrueとなる列だけを、すべての行に対して抽出します。

完全なコード例

import pandas as pd

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

print("Dataframe...\n", dataFrame)

# 列の合計に基づいてフィルタリング
# 合計点が400を超える学生を取得
dataFrame = dataFrame.loc[:, dataFrame.sum(axis=0) > 400]

# 更新後のDataFrameを表示
print("Updated Dataframe...\n", dataFrame)

出力結果

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

Dataframe...
    Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60
1           90           76         50
2           75           65         65
3           85           45         85
4           88           50         70
Updated Dataframe...
   Jacob_Marks
0           95
1           90
2           75
3           85
4           88

結果を見ると、合計点が400を超えているのはJacobのみであることがわかります。Tedの合計は330点、Jamieの合計は313点であり、いずれも条件を満たさないため除外されました。このように、sum(axis=0)loc()を組み合わせることで、列単位の集計条件に応じた柔軟なデータ抽出が簡単に行えます。

  1. Python・PandasのDataFrameから複数の列を選択する方法

    Pandasでは、CSVファイルから読み込んだDataFrameに対して、二重の角括弧 [[ ]] を使うことで、複数の列を簡単に選択できます。本記事では、具体的な手順とサンプルコードを交えて解説します。 前提:サンプルデータについて ここでは、Microsoft Excelで開いた以下のような内容のCSVファイル(SalesData.csv)を例にします。このデータには「Car(車名)」「Reg_Price(登録価格)」「Units(台数)」の3つの列が含まれています。 ステップ1:CSVファイルをPandas DataFrameに読み込む まず、read_csv() メソッドを使って、C

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