はじめに
自己紹介
Python勉強中の大学院生です。自分が詰まったところを記録していきます。
記事を書くに至った経緯
pandasのdataframeの列名の変更方法が整理できていなかったので、今回の記事で整理します。
本記事の概要
どんな人に読んでほしいか
- Pythonのpandasを学び始めた人
- pandasのdataframeの列名の変更方法がわからない人
この記事に書くこと、わかること
基本的な列名の変更のやり方がわかります。具体的なメソッドは以下の2つです。
-
df.columns = ['変更したい列名']
(dataframeの列名全てを変更したい時) -
df.rename(columns={'変更前の列名': '変更後の列名'})
具体的な方法
まずは適当にdataframeを作成します。
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も指定する。
列名の変更方法について基礎的な部分に特化してまとめました。浅い内容ですが、とりあえず簡単な名前の変更は今回の内容でできると思います。引き続き学習頑張っていきましょう!