こんにちは!インストラクターのフクロウです!
この記事では、DataFrameの列の名前にまつわる操作についてまとめました。
- DataFrameのculumns引数で列名を作成時に指定
- DataFrameのculumns引数で列名を作成後に変更
- DataFrameのrenameメソッドで列名・行名を作成後に変更
これらの操作、使い方わかりますか?
もしもわからないものがあったら、この記事の続きを是非ご覧ください!
データフレームと行の名前
DataFrameを作る際には様々なパラメータが使えます。
例えばデータフレームの要素を代入するパラメータだったり、列の名前を設定するcolumnsだったりです。
ここでは、
- 列の名前にfeature変数
- 行の名前にname変数
- DataFrameの要素にdata変数
を与える場合を考えます。
In [1]:
import pandas as pd
import numpy as np
name = ["taro","jiro","saburo","shiro"]
feature = ["height","weight","blood type","age"]
data = np.array([
[190,180,170,160],
[100,90,80,70],
["A","B","AB","O"],
[30,28,26,24]
]).T
df = pd.DataFrame(data,
index=name) # 行の名前を設定
df
この表において、[0,1,2,3]と書かれている列が「 列の名前」と呼んでいるものです。
何も設定しない場合は、左からナンバリングされます。
この値を変更する方法を学んでいきましょう。
columnsパラメータで列名を指定
DataFrame作成後に列名を指定
DataFrameにはcolumnsというパラメータ(インスタンス属性)があります。
このパラメータを使うことで、作成した後のDataFrameにも列名を付与できます。
df2 = df.copy()
df2.columns = feature
df2
ちなみに列数と列名リストのサイズが違うと、エラーになってしまうので注意です。
df2.columns = feature[:-1]
[エラーメッセージ]
DataFrame作成時に列名を指定
DataFrameの設定時に、columnsを使うことでDataFrameの列名を指定できます。
df3 = pd.DataFrame(data,
columns=feature, # 列の名前を指定
index=name) # 行の名前を設定
df3
renameメソッドで列名・行名を後から変更する
columnsパラメータは、列数と代入するリストのサイズが同じでないといけませんでした。
それだと列数が膨大であるとき大変ですね。
そのようなときは、変更したい名前だけを辞書型で指定して変更することができるrenameメソッドが使えます。
df3.rename(
columns={"height":"身長", "weight":"体重"}, # 列名を変更, {変更前:変更後}
index={"jiro":"kojiro"} # 行名を変更
)
このメソッドだと、df.rename( columns={変更前:変更後})と書くことで変更したい値だけ変更することが可能です!
まとめ
この記事では、DataFrameの列名を設定・変更する方法についてまとめました。
大きく分けて二つ、
- DataFrameのcolumnsパラメータ
- DataFrameのrenameメソッド
これらを使いこなすことで、列名を好きな値にすることができますよ!
使い方も簡単でしたね。ぜひ使ってみて下さい!