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

insert
こつこつ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ライブラリの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

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

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

キノクエスト