Pandas DataFrame の 2つの列を引き算する

Manav Narula 2023年1月30日
  1. __getitem__ 構文 ([]) を使用して、Pandas の 2つの列を引き算する
  2. Pandas で 2つのカラムを引き算する関数を使用する
  3. Pandas で 2つの列を減算するには assign() メソッドを使用する
Pandas DataFrame の 2つの列を引き算する

Pandas は非常に大きなデータセットを扱うことができ、データに適用できるさまざまな機能と操作を持っています。

そのような簡単な操作の 1つが、2つの列を引き算して結果を新しい列に格納するというもので、このチュートリアルではこれについて説明します。この単純な作業は、多くの方法で行うことができます。次の DataFrame の列'a''d'の差を計算してみましょう。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

print(df)

出力:

    a  b   c   d
0  10  6   7   8
1   1  9  12  14
2   5  8  10   6

__getitem__ 構文 ([]) を使用して、Pandas の 2つの列を引き算する

2つのカラムを引き算する最も単純な方法は、必要なカラムにアクセスして __getitem__ 構文([]) を使用して新しいカラムを作成することです。例を示します。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

df["d - a"] = df["d"] - df["a"]

print(df)

出力:

    a  b   c   d  d - a
0  10  6   7   8     -2
1   1  9  12  14     13
2   5  8  10   6      1

Pandas で 2つのカラムを引き算する関数を使用する

Pandas で 2つの列を引き算する関数を簡単に作成し、それを DataFrame の指定した列に適用するには、apply() 関数を使用します。関数 apply() にパラメータ axis を指定して 1 を設定すると、その関数が列に適用されることを示します。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)


def x(a, b):
    return a - b


df["d - a"] = df.apply(lambda f: x(f["d"], f["a"]), axis=1)

print(df)

出力:

    a  b   c   d  d - a
0  10  6   7   8     -2
1   1  9  12  14     13
2   5  8  10   6      1

列の減算は比較的簡単な操作なので、lambda キーワードを直接利用して apply() 関数内に単純な一行関数を作成することができます。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

df["d - a"] = df.apply(lambda x: x["d"] - x["a"], axis=1)

print(df)

出力:

    a  b   c   d  d - a
0  10  6   7   8     -2
1   1  9  12  14     13
2   5  8  10   6      1

Pandas で 2つの列を減算するには assign() メソッドを使用する

DataFrame assign() メソッドは、何らかの操作を行った後に DataFrame に列を追加するために使用します。このメソッドは元の列と新しい列をすべて含む新しい DataFrame を返します。次の例では、assign() メソッドを使って 2つの列を引き算する方法を示します。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

df = df.assign(d_minus_a=df["d"] - df["a"])

print(df)

出力:

    a  b   c   d  d_minus_a
0  10  6   7   8         -2
1   1  9  12  14         13
2   5  8  10   6          1
著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Pandas DataFrame