Pandas で列にスカラーを掛ける
- インプレース代入を使用して、Pandas で列をスカラーで乗算する
-
multiply
関数を使用して、Pandas で列をスカラーで乗算する -
apply
関数を使用して、Pandas で列にスカラーを乗算する -
loc
演算子を使用して、Pandas で列にスカラーを掛ける -
iloc
演算子を使用して、Pandas で列にスカラーを掛ける
データの入力からそのデータのクリーニングまで、多くのデータフレーム操作に Pandas を使用しています。 Pandas データフレームは、Python を使用したデータおよび数学演算のメソッドを提供します。
さまざまな数学演算を実行するのは直感的ではないように思えるかもしれませんが、Python を使用すると、思ったよりもずっと簡単に実行できます。 そのような操作の 1つは、Pandas 列をスカラー値で乗算することです。
この記事では、さまざまな複雑さの中で Pandas で列をスカラーで乗算する 5つの方法を示します。
インプレース代入を使用して、Pandas で列をスカラーで乗算する
インプレース代入を使用してパンダのスカラー値で列を乗算する方法に入る前に、達成しようとしていることを紹介しましょう。
7つの列を持つデータフレームがあります。
ここで、列 (one
) をスカラー値 (5) で乗算します。
では、どうすればそれを達成できるでしょうか。 最初のアプローチは、インプレース代入を使用することです。これは、値の代入に加えて、値を操作する操作です。
インプレース代入を使用して、最初のオペランド変数の値を、オペランドの値に対して実行された演算の結果で上書きします。 視覚的には、x *= 3
は x = x * 3
と同等であり、変数 x
が保持する値は 3
で乗算され、同じ変数 x
に割り当てられます。
これを説明するために、列名を割り当て、one
列でインプレース割り当てを実行する ones
が入力された 6 行 7 列の Pandas データフレームを作成できます。
import pandas as pd
import numpy as np
df = pd.DataFrame(
np.ones((6, 7)), columns=["one", "two", "three", "four", "five", "six", "seven"]
)
print(df)
出力:
one two three four five six seven
0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2 1.0 1.0 1.0 1.0 1.0 1.0 1.0
3 1.0 1.0 1.0 1.0 1.0 1.0 1.0
4 1.0 1.0 1.0 1.0 1.0 1.0 1.0
5 1.0 1.0 1.0 1.0 1.0 1.0 1.0
インプレース代入を使用するには、ドット表記またはブラケット表記を使用して、スカラー値で乗算する Pandas 列を選択する必要があります。 括弧表記を使用して、one
列を選択します。
df["one"] *= 5
print(df)
出力:
one two three four five six seven
0 5.0 1.0 1.0 1.0 1.0 1.0 1.0
1 5.0 1.0 1.0 1.0 1.0 1.0 1.0
2 5.0 1.0 1.0 1.0 1.0 1.0 1.0
3 5.0 1.0 1.0 1.0 1.0 1.0 1.0
4 5.0 1.0 1.0 1.0 1.0 1.0 1.0
5 5.0 1.0 1.0 1.0 1.0 1.0 1.0
ご覧のとおり、one
列はスカラー値 (5) で乗算されています。
multiply
関数を使用して、Pandas で列をスカラーで乗算する
インプレース代入アプローチで乗算演算子を使用する代わりに、Pandas が提供する multiply
メソッド を使用できます。 必要な列にメソッドを適用し、multiply
メソッドの引数としてスカラー値を渡します。
multiply
メソッドを紹介するために、列 two
にスカラー値 7
を掛けます (ドット表記を使用して列 two
にアクセスします)。
df.two = df.two.multiply(7)
print(df)
出力:
one two three four five six seven
0 5.0 7.0 1.0 1.0 1.0 1.0 1.0
1 5.0 7.0 1.0 1.0 1.0 1.0 1.0
2 5.0 7.0 1.0 1.0 1.0 1.0 1.0
3 5.0 7.0 1.0 1.0 1.0 1.0 1.0
4 5.0 7.0 1.0 1.0 1.0 1.0 1.0
5 5.0 7.0 1.0 1.0 1.0 1.0 1.0
apply
関数を使用して、Pandas で列にスカラーを乗算する
multiply
メソッドを使用した方法と同様に、apply
メソッド (高階関数) を使用して、Pandas で列をスカラーで乗算できます。 apply
メソッドは lambda
関数を受け取り、それが適用された列のセル要素に対してアクションを実行します。
そのため、lambda
関数を使用してセル要素に乗算アクションを指定できます。
これがどのように機能するかを説明するために、apply
メソッドを使用して three
列 (前のセクションで使用したデータフレームから) を 9
で乗算します。
df["three"] = df["three"].apply(lambda x: x * 9)
print(df)
出力:
one two three four five six seven
0 5.0 7.0 9.0 1.0 1.0 1.0 1.0
1 5.0 7.0 9.0 1.0 1.0 1.0 1.0
2 5.0 7.0 9.0 1.0 1.0 1.0 1.0
3 5.0 7.0 9.0 1.0 1.0 1.0 1.0
4 5.0 7.0 9.0 1.0 1.0 1.0 1.0
5 5.0 7.0 9.0 1.0 1.0 1.0 1.0
three
列のすべてのセルが lambda
関数に基づいて 9
で乗算されていることがわかります。 このアプローチは面倒に思えるかもしれませんが、列に乗算する値がセルによって異なる場合、より機能的になります。
loc
演算子を使用して、Pandas で列にスカラーを掛ける
また、loc
演算子を使用して、Pandas で列にスカラーを掛けることもできます。 loc
演算子を使用すると、データフレームの一部にインデックスを付けることができます。
行と列に基づいてインデックスを作成できます。 私たちにとっては、必要な列に基づいてインデックスを作成する必要があります。
loc
演算子の典型的な構文を以下に示します。
DataFrame.loc[rows, columns]
ただし、列のみにアクセスするには、次の構文を使用できます。
DataFrame.loc[:, columns]
:
は、すべての行が必要であることを示します。 上記の構文は、指定された列のすべての行にアクセスすることを意味します。
ここで、上記の構文を使用して列 four
を取得し、インプレース代入を使用して値を 11
で乗算します。
df.loc[:, "four"] *= 11
print(df)
出力:
one two three four five six seven
0 5.0 7.0 9.0 11.0 1.0 1.0 1.0
1 5.0 7.0 9.0 11.0 1.0 1.0 1.0
2 5.0 7.0 9.0 11.0 1.0 1.0 1.0
3 5.0 7.0 9.0 11.0 1.0 1.0 1.0
4 5.0 7.0 9.0 11.0 1.0 1.0 1.0
5 5.0 7.0 9.0 11.0 1.0 1.0 1.0
これは不必要に長いように見えますが、複数の列を乗算する場合、このアプローチは機能します。 たとえば、列 five
と six
を 13
で乗算する場合、列の名前を含むリストを loc
演算子の 2 番目の引数として渡します。
df.loc[:, ["five", "six"]] *= 13
print(df)
出力:
one two three four five six seven
0 5.0 7.0 9.0 11.0 13.0 13.0 1.0
1 5.0 7.0 9.0 11.0 13.0 13.0 1.0
2 5.0 7.0 9.0 11.0 13.0 13.0 1.0
3 5.0 7.0 9.0 11.0 13.0 13.0 1.0
4 5.0 7.0 9.0 11.0 13.0 13.0 1.0
5 5.0 7.0 9.0 11.0 13.0 13.0 1.0
iloc
演算子を使用して、Pandas で列にスカラーを掛ける
loc
演算子と同様に、アクセスする値のインデックスとして整数値のみを受け入れます。 列の名前を使用できる loc
とは異なり、列のインデックス値を使用します。
また、インデックスは 1 ではなく 0 から始まることに注意してください。したがって、列 7
にアクセスして 15
を掛けたい場合は、インデックス値 6
を使用します。
df.iloc[:, 6] = df.iloc[:, 6] * 15
print(df)
出力:
one two three four five six seven
0 5.0 7.0 9.0 11.0 13.0 13.0 15.0
1 5.0 7.0 9.0 11.0 13.0 13.0 15.0
2 5.0 7.0 9.0 11.0 13.0 13.0 15.0
3 5.0 7.0 9.0 11.0 13.0 13.0 15.0
4 5.0 7.0 9.0 11.0 13.0 13.0 15.0
5 5.0 7.0 9.0 11.0 13.0 13.0 15.0
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn