【毎日Python】Pythonでデータフレームの値に上書き、列を追加する方法|DataFrame.assign

assign
こつこつPython
import pandas as pd
df = pd.DataFrame({'A店': ['apple', 'banana', 'apple', 'apple', 'banana'],
                   'B店': ['banana', 'apple', 'strawberry', 'apple', 'banana'],
                   'C店': ['apple', 'apple', 'banana', 'apple', 'banana']},
                  index = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'])
df

Pythonでデータフレームの列に新しい列を追加したり列の値を上書きする方法です。
使用するのは、PythonのPandasライブラリのassignメソッドです。
このような簡単なデータフレームを作成します。

df.assign(A店='peach')

まず、それぞれの列の値を上書きしてみましょう。
df.asignで引数に、列名と上書きしたい値を指定します。
実行します。
A店の値をすべてpeachに変更できました。
このように引数に1つの値を指定すると、列内のすべての値に適用されます。

df

ここでデータフレームの中身を確認してみましょう。
A店の値が元の値のままになっています。
assignメソッドでは元の変数の値は上書きされないためです。

df01 = df.assign(D店='lemon')
df01

次に、新しい列を追加してみましょう。
df.assignで引数に新しい列名と値を指定し、変数に格納します。
実行します。
D店を追加することができました。

df02 = df.assign(D店=['banana', 'apple', 'peach', 'banana', 'peach'], point=[200, 300, 270, 320, 350])
df02

最後に、同時に複数の列を追加してみましょう。
列名とそれぞれの値をリストにして指定し、変数に格納します。
実行します。
D店とpointの列を追加できました。
なお、似たメソッドに同じくPandasライブラリのinsertメソッドがあります。
2つのメソッドの違いは、insertメソッドでは列を追加する場所を指定できますが、assignメソッドでは常に右端に列が追加される点です。
また、値を上書きした場合、insertメソッドでは元の値に上書きしますが、assignメソッドでは元の値はそのままで、新しいデータフレームが作成されます。

関連メソッド

【毎日Python】Pythonでデータフレームの任意の位置に列を追加する方法|pandas.DataFrame.insert

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト