パンダに定数値を持つ列を追加する

Olorunfemi Akinlua 2023年6月21日
  1. in-place 割り当てを使用して、Pandas で定数値を持つ列を追加する
  2. loc メソッドを使用して、Pandas で定数値を持つ列を追加する
  3. assign() 関数を使用して、Pandas で定数値を持つ列を追加する
  4. fromkeys() メソッドを使用して、Pandas で定数値を持つ列を追加する
  5. series() メソッドを使用して、Pandas で定数値を持つ列を追加する
  6. apply() 関数を使用して、Pandas で定数値を持つ列を追加する
パンダに定数値を持つ列を追加する

多くの場合、CSVJSON などの外部ソースからデータをロードするか、numpy ライブラリに基づいて入力します。 しかしそれ以上に、操作する値を持つ新しいデータ列を作成する必要があります。

これを達成するために、特定のユースケースに対してさまざまな複雑さを持つさまざまなアプローチを使用できます。 この記事では、Pandas で定数値を持つ列を追加する 6つの方法について説明します。

in-place 割り当てを使用して、Pandas で定数値を持つ列を追加する

pandas で定数値を持つ列を追加する最も簡単な方法は、典型的な代入演算子 (=) を使用することです。 それを使用する際には、以下のように 角括弧 表記を使用して定数値を新しい列名に割り当てます。

DataFrame["column name"] = value

numpy を使用してランダム化されたデータ フレーム (AB、および 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 Akinlua avatar Olorunfemi Akinlua avatar

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

関連記事 - Pandas DataFrame