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
"""








