パンダに定数値を持つ列を追加する
-
in-place
割り当てを使用して、Pandas で定数値を持つ列を追加する -
loc
メソッドを使用して、Pandas で定数値を持つ列を追加する -
assign()
関数を使用して、Pandas で定数値を持つ列を追加する -
fromkeys()
メソッドを使用して、Pandas で定数値を持つ列を追加する -
series()
メソッドを使用して、Pandas で定数値を持つ列を追加する -
apply()
関数を使用して、Pandas で定数値を持つ列を追加する
多くの場合、CSV
、JSON
などの外部ソースからデータをロードするか、numpy
ライブラリに基づいて入力します。 しかしそれ以上に、操作する値を持つ新しいデータ列を作成する必要があります。
これを達成するために、特定のユースケースに対してさまざまな複雑さを持つさまざまなアプローチを使用できます。 この記事では、Pandas で定数値を持つ列を追加する 6つの方法について説明します。
in-place
割り当てを使用して、Pandas で定数値を持つ列を追加する
pandas で定数値を持つ列を追加する最も簡単な方法は、典型的な代入演算子 (=
) を使用することです。 それを使用する際には、以下のように 角括弧
表記を使用して定数値を新しい列名に割り当てます。
DataFrame["column name"] = value
numpy
を使用してランダム化されたデータ フレーム (A
、B
、および C
の 3つの列) を作成し、0.1 の定数値を持つ新しい列 (
Dという名前) を追加して、これを説明しましょう。
.
コード:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(3, 3), columns=list("ABC"), index=[1, 2, 3])
print(df)
出力:
A B C
1 0.466388 -0.626593 0.127939
2 -0.523171 0.778552 -1.056575
3 1.669556 -0.254253 0.855463
ここで、0.1
定数値を持つ新しい D
列を追加するには、以下のコードで十分です。
コード:
df["D"] = 0.1
print(df)
出力:
A B C D
1 -0.099164 0.100860 0.070556 0.1
2 -0.693606 -0.226484 0.032315 0.1
3 0.831928 -0.545919 1.759017 0.1
loc
メソッドを使用して、Pandas で定数値を持つ列を追加する
loc
メソッドは、pandas で定数値を持つ列を追加するために使用できる別のアプローチです。 loc
メソッドを使用すると、DataFrame の一部を行名と列名でインデックス付けできるため、loc
メソッドを使用して新しい列を選択できます (前のセクションの square notation
で行ったように)。 新しい列名。
loc
メソッドを使用して 0.2
の定数値を持つ新しい列名 - E
を追加しましょう。
コード:
df.loc[:, "E"] = 0.2
print(df)
出力:
A B C E
1 -0.233729 -0.343784 -0.354388 0.2
2 -0.529278 -0.239034 0.791784 0.2
3 -0.498778 0.165311 2.983666 0.2
:
は、すべての行がインデックス付けされることを指定し、E
列が指定され、値 0.2
がそれに割り当てられます。
assign()
関数を使用して、Pandas で定数値を持つ列を追加する
Pandas で定数値を持つ列を追加する操作を実現する別のアプローチは、assign()
関数 です。 assign()
関数は、列の名前が関数の引数として渡される Pandas DataFrame に新しい列を割り当てるように設計された特定の関数です。
これを使用して、記事で使用した df
DataFrame に割り当てられた値 0.3
を持つ新しい列 F
を作成します。
コード:
df = df.assign(F=0.3)
print(df)
出力:
A B C D E F
1 1.474679 -0.369649 0.258509 0.1 0.2 0.3
2 -0.887326 -0.097165 0.394489 0.1 0.2 0.3
3 -1.763712 0.631679 -0.667194 0.1 0.2 0.3
fromkeys()
メソッドを使用して、Pandas で定数値を持つ列を追加する
それでも、assign()
関数では、Pandas で定数値を持つ複数の列を追加したい場合は、assign()
関数と dict.fromkeys()
関数を使用できます。 fromkeys()
関数は 2つの引数を取ります。
最初の引数は列名を含むリストで、2 番目の引数は渡した列に必要な定数値です。 fromkeys()
は、キーペア関係の最初の引数 (リスト) と 2 番目の引数 (値) に基づいて作成された辞書を返します。
その後、辞書は assign()
関数に解析され、**
は関数に任意の数の引数 (辞書) を許可するイディオムとして機能します。
コード:
newColumns = ["G", "H", "I"]
df = df.assign(**dict.fromkeys(newColumns, 0.4))
print(df)
出力:
A B C D E F G H I
1 1.474679 -0.369649 0.258509 0.1 0.2 0.3 0.4 0.4 0.4
2 -0.887326 -0.097165 0.394489 0.1 0.2 0.3 0.4 0.4 0.4
3 -1.763712 0.631679 -0.667194 0.1 0.2 0.3 0.4 0.4 0.4
リストと fromkeys()
関数を使用する代わりに、ディクショナリを直接作成し、assign()
関数を使用して、各列にどの定数値を持たせたいかを指定できます。 このようにして、各列に異なる定数値があります。
コード:
newDictColumns = {"J": 0.5, "K": 0.6, "L": 0.7}
df = df.assign(**newDictColumns)
print(df)
出力:
A B C D E F G H I J K L
1 1.474679 -0.369649 0.258509 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
2 -0.887326 -0.097165 0.394489 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
3 -1.763712 0.631679 -0.667194 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
series()
メソッドを使用して、Pandas で定数値を持つ列を追加する
series()
関数を使用すると、軸ラベルを持つ 1 次元配列を作成できます。 新しい列を追加するには、リスト内包表記を使用して DataFrame index
をループし、定数値を追加します。
series()
関数にリスト内包表記を渡して M
列を追加しましょう。
コード:
df["M"] = pd.Series([0.8 for x in range(len(df.index) + 1)])
print(df)
出力:
A B C D E F G H I J K L \
1 1.474679 -0.369649 0.258509 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
2 -0.887326 -0.097165 0.394489 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
3 -1.763712 0.631679 -0.667194 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
M
1 0.8
2 0.8
3 0.8
apply()
関数を使用して、Pandas で定数値を持つ列を追加する
apply()
関数を使用して、各セルに値を割り当てる lambda
関数を渡すことで、Pandas に定数値を持つ列を追加できます。 その後、apply()
関数の結果が DataFrame 列の square notation
に割り当てられます。
apply()
関数内で lambda
関数を使用して 0.9
の定数値を持つ N
列を作成して、これを実際に見てみましょう。
コード:
df["N"] = df.apply(lambda x: 0.9, axis=1)
print(df)
出力:
A B C D E F G H I J K L \
1 1.474679 -0.369649 0.258509 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
2 -0.887326 -0.097165 0.394489 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
3 -1.763712 0.631679 -0.667194 0.1 0.2 0.3 0.4 0.4 0.4 0.5 0.6 0.7
M N
1 0.8 0.9
2 0.8 0.9
3 0.8 0.9
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