本記事では、Python(Pandas)で列や行の追加・削除・項目名変更する方法をご紹介します。
Pythonの実行環境
今回は、以下の実行環境でプログラムを実行しています。
・Python 3.7.6
・Jupyterlab 1.2.6
・Pandas:1.1.2
本記事で利用するライブラリはPandasとNumPyです。
※NumPyはテストデータ作成時のみ利用
import pandas as pd
import numpy as np
テストデータは、次の通り作成します。
df = pd.DataFrame(np.arange(16).reshape(4, 4))
Python(Pandas)で列や行の追加を行う方法
列の追加は、df[ ]で新しい列を定義し、列の要素を設定します。
列の要素は、値やリストを代入します。
df['列追加'] = 1
列の値がすべて1の「列追加」列が追加されます。
行の追加は、loc[ ]を使います。[ ]の中に新しい行を設定します。
今度は、代入する値として0から4の要素を持つリストを設定します。
df.loc['行追加'] = np.arange(5)
ちゃんと「行追加」行が追加され、0から4の値になっています。
このように、df[ ]やloc[ ]を使って、値またはリストを代入させる形で列や行で追加できます。
Python(Pandas)で列や行の項目名を変更する方法
列や行の項目名の変更は、rename()を使います。
引数に、columnsとして、辞書型で変更前と変更後の項目名を指定します。
列の項目名の変更は次の通りとなります。
df = df.rename(columns={0 : '列名変更0', 1 : '列名変更1'})
列名が0, 1だったのが、「列名変更0」と「列名変更1」に変更されています。
次に、行の列の項目名の変更は、列のcolumnsをindexに変更して行います。
df = df.rename(index={0:'行名変更1', '行追加':'行名変更2'})
このように変更前の行項目が数値・文字列を問わず変更できます。
Python(Pandas)で列や行を削除する方法
最後に、列や行を削除する方法をご紹介します。
列や行の削除は、drop()を使います。
引数としては、列の場合は削除するリストで列名を指定し(複数可)、axis=1とします。
行の場合は、削除する行名をリストで指定し(複数可)、デフォルトでaxis=0となるため、設定しなくても大丈夫です。
df = df.drop(['列名変更0', 2], axis=1)
df.drop([2, '行名変更2'])
上の処理を行うと、このように列や行が削除されます。
以上、Pythonで列や行の追加・削除・項目名変更する方法を説明してきました。
今回の内容は基本的な部分ですが、ついつい忘れがちになるので、ぜひその都度立ち返って、定着させていきましょう。
最後まで読んでいただき、ありがとうございました。