7
2

More than 1 year has passed since last update.

【Pandas基礎】dataframeの列名を変更する

Last updated at Posted at 2023-05-06

はじめに

自己紹介

Python勉強中の大学院生です。自分が詰まったところを記録していきます。

記事を書くに至った経緯

pandasのdataframeの列名の変更方法が整理できていなかったので、今回の記事で整理します。

本記事の概要

どんな人に読んでほしいか
  • Pythonのpandasを学び始めた人
  • pandasのdataframeの列名の変更方法がわからない人
この記事に書くこと、わかること

基本的な列名の変更のやり方がわかります。具体的なメソッドは以下の2つです。

  • df.columns = ['変更したい列名'] (dataframeの列名全てを変更したい時)

  • df.rename(columns={'変更前の列名': '変更後の列名'})

具体的な方法

まずは適当にdataframeを作成します。

data.py

import pandas as pd

data = [[4, 5,11],[2, 8, 10], [3, 6, 12], [1, 7, 9]]

df = pd.DataFrame(data=data,
                  columns=['col1', 'col2', 'col3'])

col1 col2 col3
0 4 5 11
1 2 8 10
2 3 6 12
3 1 7 9

列名をすべて変更したい時

全ての列名を変更したい場合(今回であれば'col1', 'col2', 'col3'を'a', 'b', 'c'に変更する)は以下のようにして実行できます。

df.columns = ['a', 'b', 'c']
df

実行結果

a b c
0 4 5 11
1 2 8 10
2 3 6 12
3 1 7 9

このようにして一括で列名を変更することができました。

一部の列名を変更したい時

.renameメソッドを用いてcolumns(列名)を指定します。

df.rename(columns={'変更前の列名': '変更後の列名'})

例えば、'col1'を'a'に変更したいときは、

df.rename(columns={'col1': 'a'})
df

実行結果

a col2 col3
0 4 5 11
1 2 8 10
2 3 6 12
3 1 7 9

'col1'のみを'a'に変更することができました。

また、複数の列名を変更したい場合は、columnsに同じように要素を追加するだけでOKです。

df.rename(columns={'col1': 'a', 'col3': 'c'})
df

実行結果

a col2 c
0 4 5 11
1 2 8 10
2 3 6 12
3 1 7 9
列名だけでなく行名も同時に変更したい時

行名も一緒に変更したいという時もあると思います。先ほどcolumnsを指定して列名を変更できたので、行名もindexを指定することで変更が可能です。

列名の変更に加えて、2行目と4行目をappleとbananaに変更したいと思います。

df.rename(columns={'col1': 'a', 'col3': 'c'},
          index = {1: 'apple', 3: 'banana'})
df

実行結果

a col2 c
0 4 5 11
apple 2 8 10
2 3 6 12
banana 1 7 9

このように行と列の名前を同時に変更することができました。

まとめ

  • データフレームの列名全てを一括で変更したい→df.columns = ['変更したい列名']

  • 一部の列名を変更したい→df.rename(columns={'変更前の列名': '変更後の列名'})
    ※行名も同時に変更したい場合はindexも指定する。

列名の変更方法について基礎的な部分に特化してまとめました。浅い内容ですが、とりあえず簡単な名前の変更は今回の内容でできると思います。引き続き学習頑張っていきましょう!

7
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2