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

【毎日Python】Pythonでデータフレームの任意の位置に列を追加する方法|pandas.DataFrame.insert
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ライブラリのinsertメソッドです。
このような簡単なデータフレームを作成します。

df.insert(0, 'D店', 'peach')
df

まず、左端に列を追加してみましょう。
df.insertで第1引数に追加したい列の番号、第2引数に列名、第3引数に値を指定します。
列番号は左から0で始まるため、左端に追加したい場合には0になります。
実行します。
左端にD店という列を追加できました。
ちなみに、insertメソッドでは元のデータフレームに新しいデータが上書きされるため、元のデータを残したい場合には新しいデータを変数に格納する必要があります。

df.insert(2, 'point', 100)
df

次に、左から3番目に追加してみましょう。
列番号は左から0で始まるため、第1引数は2になります。
実行します。
左から3番目にpointという列を追加できました。

df.insert(4, 'E点', ['apple','peach','strawberry','apple','apple')
df

なお、第一引数の番号にはマイナスの値を使用するとエラーが出ます。
番号を指定する際には、左から数えた場合のプラスの値を指定しましょう。
このデータフレームの場合、右端にデータフレームを追加したい場合には-1ではなく5を指定します。
実行します。
右端にデータフレームを追加できました。
insertメソッドに似たメソッドで、同じくPandasライブラリのassignメソッドがあります。
2つのメソッドの違いは、insertメソッドでは列を追加する場所を指定できますが、assignメソッドでは常に右端に列が追加される点です。

関連メソッド

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