Pandas DataFrame の 2つの列を引き算する
-
__getitem__
構文 ([]
) を使用して、Pandas の 2つの列を引き算する - Pandas で 2つのカラムを引き算する関数を使用する
-
Pandas で 2つの列を減算するには
assign()
メソッドを使用する
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 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