Pandas はデータ解析とデータ操作のための Python ライブラリです。
Pandasのほぼすべての操作は、「DataFrame」を中心に展開されます。
データフレームは、2次元のテーブルを抽象的に表現したもので、様々なデータを格納することができます。
また、すべてのカラムに名前を付けることができます。
そのため、DataFrame
を使うときには、カラムを属性やフィールドと呼ぶことがよくあります。
この記事では、既に存在する DataFrame
のカラムの名前を変更する方法について説明します。
DataFrame` のカラム名を操作するには、2つのオプションがあります。
-
- 既存の
DataFrame
のカラムの名前を変更する。
- 既存の
-
- 新しい
DataFrame
を作成する際に、カスタムカラム名を割り当てる。
- 新しい
それでは、両方の方法について見ていきましょう。
既存のデータフレームの列名の変更
以下にサンプルとして DataFrame
を用意しました。
import pandas as pd
data = {'Name':['John', 'Doe', 'Paul'],
'age':[22, 31, 15]}
df = pd.DataFrame(data)
DataFramedf` は以下のようなものです。
この DataFrame
のカラムの名前を変更するには、 rename()
メソッドを使用します。
-
-
columns
引数として、元のカラム名と新しいカラム名のマッピングをキーと値のペアで格納した辞書を指定します。
-
-
-
inplace
引数としてboolean
値を指定します。この値がTrue
に設定されると、元のDataframe
に対して変更が加えられます。
-
ここでは、DataFrame
のカラム名を Name, age
から First Name, Age
に変更してみましょう。
df.rename(columns = {'Name' : 'First Name', 'age' : 'Age'}, inplace = True)
これで、df
の中身は
データフレーム作成時の列名の割り当て
次に、DataFrame
を作成する際にカラム名を割り当てる方法について説明します。
これは、特に csv
ファイルから DataFrame
を作成する際に、ヘッダーカラムの名前を無視して独自のカラム名を付けたい場合に便利です。
引数 names
にリストを渡すことで、既に存在するヘッダーカラムを独自のカラムで上書きすることができる。
リストには、データ中のすべてのカラムの名前を指定する必要があり、そうでない場合は例外がスローされる。
もし、いくつかのカラムの名前だけを変更したい場合は、 DataFrame
を作成した後に、 rename
メソッドを使用したほうがよいことに注意してください。
ここでは、out.csv
を用いて、以下のような内容の DataFrame
を作成することにする。
Name, age
John, 22
Doe, 31
Paul, 15
ファイルの最初の行はヘッダー行であり、カラム名を含んでいることに注意してください。
Pandas はデフォルトで、最初の行から DataFrame
にカラム名を割り当てています。
したがって、ヘッダ行を無視して DataFrame
を作成し、 names
引数に渡すリストでカラム名を指定するように指定します。
columns = ['First Name', 'Age']
df = pd.read_csv('out.csv', header = None, names = columns)
df
この結果、以下のようになります。
もう一つの方法は、古いコンストラクタである DataFrame()
の中でカラム名を指定する方法です。
1 つの違いは、列名のリストを受け取るパラメータが、 names
ではなく column
と呼ばれることです。
import numpy as np
new_columns = ['First Name', 'Age']
data = np.array([["Nicholas", 23],["Scott", 32],["David", 25]])
df = pd.DataFrame(data, columns = new_columns)
この結果、別の DataFrame
が生成されます。
結論
この記事では、DataFrame
のカラムに名前をつけたり、名前を変更する方法について簡単に説明しました。
DataFrameのインスタンスを生成する際に名前を付けるか、
rename()` メソッドで後から名前を変更します。