pandasでデータフレームの行・列計算をする方法とポイント!初心者向け解説

はじめに

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を使うことで、データフレームの行・列計算を簡単に行うことができます。