Home » Python » pandasの使い方 » pandasのDataFrame.columns属性で列名・カラム名を設定する

pandasのDataFrame.columns属性で列名・カラム名を設定する

動作検証バージョン:Windows 11 Home + Python 3.10.6 + Jupyter Notebook 6.5.3 + pandas 2.0.1

検索キーワード「dataframe column名変更」をきっかけにして、pandasのDataFrame.rename()メソッドを使って、DataFrameの列名・カラム名を変更するコードをご紹介しました。

そもそも列名の設定されていないCSVやTSVファイルを読み込んでDataFrameを作成してから、列名・カラム名を設定したいというニーズもありそうです。

[スポンサードリンク]

DataFrame.columns属性を使えば、あとから列名・カラム名を設定できます。

列名・カラム名のないDataFrameを作成する

まずは、以下のコードを実行して、列名・カラム名のないDataFrameを作成してください。

import pandas as pd

samp_data = [
    ['Alice', 100],
    ['Bob', 200],
    ['Chris', 300],
    ['Dave', 400],
    ['Eve', 500],
]
df = pd.DataFrame(data=samp_data)

元のデータに列名がなく

samp_data = [
    ['Alice', 100],
    ['Bob', 200],
    ['Chris', 300],
    ['Dave', 400],
    ['Eve', 500],
]

pandas.DataFrame()関数で、引数columnsを指定していないため、

df = pd.DataFrame(data=samp_data)

列名が「0」「1」の、以下のようなDataFrameが作成されます。

	0	1
0	Alice	100
1	Bob	200
2	Chris	300
3	Dave	400
4	Eve	500

DataFrame.columns属性で列名・カラム名を設定

上記のDataFrameに対して、

df.columns = ['name', 'score']

を実行すると、以下のようなDataFrameになります。

	name	score
0	Alice	100
1	Bob	200
2	Chris	300
3	Dave	400
4	Eve	500

DataFrame.columns属性に設定するのはタプルでもOKです。

df.columns = ('name', 'score')

列数は一致させる必要がある

DataFrameの列数と、DataFrame.columns属性に設定するリストやタプルの要素数は一致している必要があります。
先ほどの2列のDataFrameに対し、

df.columns = ['id', 'name', 'score']

を実行したときには、以下のような例外が発生します。

ValueError: Length mismatch: Expected axis has 2 elements, new values have 3 elements

設定済の場合も変更できる

以下のように、列名・カラム名が既に設定されている場合でも、

	name	score
0	Alice	100
1	Bob	200
2	Chris	300
3	Dave	400
4	Eve	500

以下のコードを実行すれば、

df.columns = ['名前', '得点']

列名・カラム名を変更できます。

	名前	得点
0	Alice	100
1	Bob	200
2	Chris	300
3	Dave	400
4	Eve	500

[スポンサードリンク]

Home » Python » pandasの使い方 » pandasのDataFrame.columns属性で列名・カラム名を設定する

「pandasの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.