PythonのDataFrameで列の名前を変更したい!
そんなお悩みを、Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
実行見本
事前準備
- pandasのインストール
今回の本題とは直接関係ありませんが、エクセルファイルの読み込みをする際に「pandas」が必要になります。
pandasのインストール方法
pandasを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install pandas
※pandasを使用したことがある場合は、このインストール作業は不要です。
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import pandas as pd
#▼エクセルファイルの読み込み
df = pd.read_excel('input.xlsx')
#▼列名の変更
df = df.rename(columns = {'責任者' : '保護者'})
#▼書き出し
df.to_excel('output.xlsx', index = None)
df = df.rename(columns = {'責任者' : '保護者'})
解説
列名の変更(rename)
>>7.df = df.rename(columns = {‘責任者’ : ‘保護者’})
「rename」で列名や行名を変更することができます。
【変数名 = 変数名.rename(columns = {‘変更したい列名‘ : ‘変更後の列名‘})】
複数の列名を一括変更
複数の列名を一括変更したい場合は、「,(カンマ)」で区切って記述します。
【 変数名 = 変数名.rename(columns = {‘変更したい列名A‘ : ‘変更後の列名A‘, ‘変更したい列名B‘ : ‘変更後の列名B‘} ) 】
df = df.rename(columns = {‘責任者‘ : ‘保護者‘, ‘担任‘ : ‘先生‘})
これで指定した複数の列名を一括で変更することができます。
すべての列名を一括変更
すべての列名を総替えしたい場合は、「set_axis()」を使います。
【 変数名 = 変数名.set_axis([‘列名A’,’列名B’,’列名C’,・・・], axis = 1) 】
列名の変更(replace)【参考】
今回解説した「rename」の他に、「replace」でも列名を変更することができます。
「rename」の方が簡単なので、「replane」は参考程度で大丈夫です。
▼列名変更(参考)
変数名.columns = [col.replace(‘変更したい列名’ , ‘変更後の列名’) for col in 変数名.columns]
その他の解説
「read_excel」などは下記記事で解説しております。ご参考ください。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
列名が変更されない
列名が変更されない時は、指定した「変更したい列名」が間違っているか存在しない可能性があります。
スペースが入っていないか等よく確認しましょう。コピペするのが無難です。
また、読み込んだエクセルファイル内に同じ名前の列が複数ある場合、うまく変更されない場合がありますので、検索を使って確認しましょう。
まとめ
PythonのDataFrameで列名を変更する方法を解説いたしました。
少しでも助けになれば幸いです。
列名変更=「rename」と覚えてください。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。