はじめに
pandasはPythonのデータ解析ライブラリの一つであり、データフレームと呼ばれる2次元のテーブル形式のデータを扱うことができます。この記事では、pandasを用いたデータフレームの行・列計算について解説します。
行・列の基本的な算術演算方法
pandasでは、データフレームの各要素に対して四則演算をすることができます。例えば、以下のように2つのデータフレームを作成して、加算を行うことができます。
import pandas as pd df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df2 = pd.DataFrame({'A': [10, 20, 30], 'B': [40, 50, 60]}) df3 = df1 + df2 print(df3)
A B 0 11 44 1 22 55 2 33 66
df4 = df1 * 10 print(df4)
A B 0 10 40 1 20 50 2 30 60
上記のコードを実行すると、以下のように2つのデータフレームの各要素を加算したデータフレームが出力されます。また、スカラー値をデータフレームの各要素に対して演算することもできます。例えば、以下のようにスカラー値とデータフレームを作成して、乗算を行うことができます。上記のコードを実行すると、以下のようにデータフレームの各要素に対してスカラー値を乗算したデータフレームが出力されます。
データフレーム同士の行・列計算
以下のように2つのデータフレームを作成して、減算を行うことができます。
df5 = pd.DataFrame({'A': [10, 20, 30], 'B': [40, 50, 60]}) df6 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df7 = df5 - df6 print(df7)
A B 0 9 36 1 18 45 2 27 54
df8 = pd.DataFrame({'A': [10, 20, 30], 'B': [40, 50, 60]}) df9 = pd.DataFrame({'A': [2, 5, 8], 'B': [10, 25, 40]}) df10 = df8 / df9 print(df10)
A B 0 5.000000 4.000000 1 4.000000 2.000000 2 3.750000 1.500000
上記のコードを実行すると、以下のようにデータフレーム同士の各要素を除算したデータフレームが出力されます。df9が自動的に縦方向にブロードキャストされてから計算が行われます。
要素ごとの関数適用や集計による計算
データフレームの各要素に対して、要素ごとの関数適用や集計による計算を行うことができます。例えば、以下のようにデータフレームを作成して、要素ごとに平方根を計算することができます。
df11 = pd.DataFrame({'A': [1, 4, 9], 'B': [16, 25, 36]}) df12 = df11.applymap(lambda x: x**0.5) print(df12)
A B 0 1.0 4.0 1 2.0 5.0 2 3.0 6.0
df13 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) sum_A = df13['A'].sum() sum_B = df13['B'].sum() print(f"sum_A: {sum_A}") print(f"sum_B: {sum_B}")
sum_A: 6 sum_B: 15
上記のコードを実行すると、以下のようにデータフレームの各要素に対して平方根を計算したデータフレームが出力されます。applymapメソッドを用いて、データフレームの各要素に対してlambda関数を適用しています。また、データフレームの各列や各行に対して、集計による計算を行うこともできます。例えば、以下のようにデータフレームを作成して、各列の合計値を計算することができます。上記のコードを実行すると、以下のように各列の合計値が出力されます。
まとめ
pandasを用いたデータフレームの行・列計算について、基本的な算術演算方法、データフレーム同士の行・列計算、要素ごとの関数適用や集計による計算、ブロードキャストを利用した行・列計算について解説しました。pandasを使うことで、データフレームの行・列計算を簡単に行うことができます。