This post is also available in: English-US (英語)
pandasのデータフレームを扱っていて、カラム名/列名のデータ型をforループで、一括で変換する方法について、備忘録的にメモを書いています。
全てのカラム名/列名データを型変換するパターンと、型変換したくないカラム名/列名データを除外して型変換するパターンのサンプルコードを書いています。
機械学習等で扱う場合に、カラム名/列名が大量になってくるほど、便利だと思います。
全てのカラム名/列名データを型変換するパターン
import pandas as pd # サンプルデータ sample_list = {'sampleA':[1,2,3], 'sampleB':[4,5,6]} # データフレーム作成 df = pd.DataFrame(sample_list) print(df) """ sampleA sampleB 0 1 4 1 2 5 2 3 6 """ # カラム名/列名を順番にループ for i in df.columns: df[f'{i}'] = df[f'{i}'].astype(float) print(df) """ sampleA sampleB 0 1.0 4.0 1 2.0 5.0 2 3.0 6.0 """
型変換したくないカラム名/列名データを除外して型変換するパターン
import pandas as pd # サンプルデータ sample_list = {'sampleA':[1,2,3], 'sampleB':[4,5,6], 'sampleC':['A','B','C']} # データフレーム作成 df = pd.DataFrame(sample_list) print(df) """ sampleA sampleB sampleC 0 1 4 A 1 2 5 B 2 3 6 C """ # 型変換から除外するカラム名/列名のリスト exclude_list = ['sampleC'] # カラム名/列名を順番にループするが、exclude_list に含まれているカラム名/列名は除外 for i in df.columns: if i not in exclude_list: df[f'{i}'] = df[f'{i}'].astype(float) print(df) """ sampleA sampleB sampleC 0 1.0 4.0 A 1 2.0 5.0 B 2 3.0 6.0 C """