【python】DataFrameの列名を数値からエクセルのようにアルファベット表記に変更するモジュールの紹介

【python】DataFrameの列名を数値からエクセルのようにアルファベット表記に変更するモジュールの紹介

この記事ではDataFrameの列名をエクセルのアルファベット表記のようにABC…とするモジュールを紹介します。

時間の無い人はコードを丸々コピーして取り込むファイルの部分だけ変更すればとりあえず稼働します!
余裕のある人は改造のためにもぜひコードの中身を理解して得ると幸いです。

この記事の目標
・列名を数字からアルファベットの連続した羅列にする

DataFrameとSeries型の違いがわからない人はまず以下の記事で理解しましょう!!
DataFrameとSeriesの違いを紹介
その他Pythonの記事は以下にまとめています!!

Python記事まとめ

[スポンサーリンク]


完成コード

列名をエクセルのアルファベット列のようにするコードは以下となります。
数値をアルファベットにするモジュールをフル活用して動かしているためという単純なコードです。

test.csvの中身は以下のようになっていて

コードを実行すると以下のように列名がABC…と変化していることがわかります。

 

コードの解説

余裕のある人、改造したい人向けにコードの中身を簡単に紹介していきます。

関数部分

今回の核となる関数cvは数値からアルファベットに変換するモジュールです。

変換するためにアスキーコードを利用しています。

アスキーコード表:http://www3.nit.ac.jp/~tamura/ex2/ascii.html

上記のアスキーコード表を見ると65はA、90はZであることがわかります。
Pythonでただ65と書いてもただの65という数値として認識されますが、
chrモジュールを用いてchr(65)とするとアスキーコードの65と認識されるのです。
つまりchr(65)はA、chr(90)はZと出力されます。

このように数値を受け取ったらうまい具合にアスキーコードに対応させて返しているだけです。

 

メイン部分

メイン部分はCSV読み込み、数値をアルファベット変換、列名変更を行っているのみです。

 

この部分はdf.read_csvを用いて任意のCSVファイルを読み込んでいます。
この時CSVにヘッダーが無いのでヘッダー無いよと指定しています。

 

この部分は列数だけ数値をインクリメント(1,2,3…)してforを繰り返すことで変換し、リストに保持しています。
df.shapedfの行数と列数を返すモジュールでdf.shape[0]は行数、df.shape[1]は列数となります。
今回、Aが1なので1スタートにしており、その代わり終了が1早まるので終了に+1しています。

 

この部分は列名を変更しています。
df.columnsにリストを渡すことで全ての列名が変更されます。

 

作成モジュールカテゴリの最新記事