【Python・Pandas】DataFrameの特定の行だけを合計する方法(loc()の使い方を解説)
PandasのDataFrameで特定の行のみを合計したい場合は、loc()メソッドを使います。:演算子で開始行と終了行のインデックスを指定することで、合計対象の範囲を選択できます。また、loc()では合計に含める列も同時に指定できるのが便利なポイントです。計算結果は、新しい列としてDataFrameに追加して表示できます。
サンプルDataFrameの作成
まず、例として商品の在庫データを持つDataFrameを作成しましょう。「期首在庫(Opening_Stock)」と「期末在庫(Closing_Stock)」の情報を含んだ商品レコードを用意します。
dataFrame = pd.DataFrame({"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"], "Opening_Stock": [300, 700, 1200, 1500], "Closing_Stock": [200, 500, 1000, 900]})
特定の行を合計する方法
ここでは、先頭の2行(インデックス0〜1)を合計してみます。loc()の中で列名としてOpening_StockとClosing_Stockを明示的に指定し、その合計結果を新しい列「Sum_Result」に格納します。
dataFrame['Sum_Result'] = dataFrame.loc[0 : 1,["Opening_Stock" , "Closing_Stock"]].sum(axis = 1)
sum(axis = 1)と指定することで、行方向(横方向)に沿って各列の値が合計されます。範囲外の行には自動的にNaN(欠損値)が入る点にも注目してください。
完全なコード例
以下が全体のコードです。
import pandas as pd
dataFrame = pd.DataFrame({"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"], "Opening_Stock": [300, 700, 1200, 1500], "Closing_Stock": [200, 500, 1000, 900]})
print("DataFrame...\n", dataFrame)
# 特定の行を合計する
# loc()内で列名(Opening_StockとClosing_Stock)も指定
# 結果は新しい列 Sum_Result に表示
dataFrame['Sum_Result'] = dataFrame.loc[0 : 1,["Opening_Stock" , "Closing_Stock"]].sum(axis = 1)
print("\nSumming some rows...\n", dataFrame)
実行結果
上記のコードを実行すると、次のような出力が得られます。
DataFrame...
Closing_Stock Opening_Stock Product
0 200 300 SmartTV
1 500 700 ChromeCast
2 1000 1200 Speaker
3 900 1500 Earphone
Summing some rows...
Closing_Stock Opening_Stock Product Sum_Result
0 200 300 SmartTV 500.0
1 500 700 ChromeCast 1200.0
2 1000 1200 Speaker NaN
3 900 1500 Earphone NaN
ポイントまとめ
loc[開始行 : 終了行]で合計したい行の範囲を指定できます。- 第2引数に列名のリストを渡すことで、合計対象の列を絞り込めます。
sum(axis = 1)により行ごとの横方向の合計が計算されます。- 選択範囲外の行にはNaNが代入されるため、必要に応じて
fillna(0)などで補完すると扱いやすくなります。
-
Python Pandas入門 – データフレームから条件に合う行のサブセットを抽出する方法
Pandasのデータフレームから行のサブセット(一部の行)を取得するには、条件式を使ってデータを絞り込みます。この手法は「ブールインデックス参照」と呼ばれ、データ分析で最もよく使われる操作のひとつです。 使用するCSVファイル ここでは、Microsoft Excelで開いた次のようなCSVファイル(SalesData.csv)を例にします。車種名(Car)、登録価格(Reg_Price)、販売台数(Units)の3つの列を持つデータです。 CSVファイルをデータフレームとして読み込む まず、read_csv()メソッドを使って、CSVファイルのデータをPandasのデータフレームに読み込み
-
【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ファイルを読み込みます。ここではデスクトップ上に保存