(1) Pythonでcsvのカラム名を変更する方法
(1-1) 構文①
(1-2) サンプルプログラム①
(1-3) 構文②
(1-4) サンプルプログラム②
PythonのPandasライブラリを用いてcsvを読み込んで
(1) Pythonでcsvのカラム名を変更する方法
(1-1) 構文①
(構文)
[DataFrame型].columns = [[ループ変数].replace('[置換元]','[置換先]') for [ループ変数] in [DataFrame型].columns]
(構文説明)
①[DataFrame型]について
[DataFrame型]は[Pandasライブラリ].read_csvの結果から作られます。
import pandas as pd df = pd.read_csv(r"C:\Users\Rainbow\Desktop\tennis_ranking_20201023.csv",delimiter="~")
(図111)read_csvの結果を代入したdfの型(Type出力結果)
②[DataFrame型]のcolumn属性
[DataFrame型]のcolumn属性には、読み込んだcsvのカラムがlist形式で格納されています。
(図112)読み込んだcsvのカラムはcolumns属性にlist形式で格納されている
③『[ループ変数].replace(‘[置換元]’,'[置換先]’)』
上記部分で、カラムの置換処理を実施しています。
④『[ [置換処理] for [ループ変数] in [DataFrame型].columns]』
上記部分で、columnsのlistを順番にループして、各カラムに対して[置換処理]を実行するという動きになります。
(1-2) サンプルプログラム①
(サンプルプログラム)
import pandas as pd def main(): # csvファイルの読み込み # 第一引数=ファイルパス # 第二引数=encoding=エンコーディング方式 df = pd.read_csv(r"C:\Users\Rainbow\Desktop\tennis_ranking_20201023.csv",delimiter="~") # 変更前のカラムリストを表示 print("Before Column\t"+str(df.columns)) # カラム名の変更処理 df.columns = [col.replace('Player','PlayerName') for col in df.columns] # 変更後 print("After Column\t"+str(df.columns)) if __name__ == '__main__': main()
(図121)
(1-3) 構文②
(構文)
[DataFrame型].rename(columns={'[置換前の文字列(Before)]':'[置換後の文字列(After)]', inplace=True}
(構文説明)
①renameメソッドについて
DataFrameクラスのrenameメソッドを使います。1つ目のオプションである「columns」が置換の役割を担当しており、置換前後の文字列を与えます。
②Inplace=Trueについて
Inplace=Trueを指定する事で、元の[DataFrame型]を上書きする動きになります。もしInplace=Trueを使用しない場合は、結果を新しいDataFrameにコピーする必要があります。
(1-4) サンプルプログラム②
(サンプルプログラム)
import pandas as pd def main(): # csvファイルの読み込み # 第一引数=ファイルパス # 第二引数=encoding=エンコーディング方式 df = pd.read_csv(r"C:\Users\Rainbow\Desktop\tennis_ranking_20201023.csv",delimiter="~") # 変更前のカラムリストを表示 print("Before Column\t"+str(df.columns)) # カラム名の変更処理 # columnsオプションで指定した文言の通りに置換を行い # 結果を元のDataFrameに更新する df.rename(columns={'Move':'MoveRank'}, inplace=True) # 変更後のカラムリストを表示 print("After Column\t"+str(df.columns)) if __name__ == '__main__': main()
(図131)