サイトアイコン Amelt.net

pandas:データフレームのカラム名/列名のデータ型を一括で変換するサンプルコード

Amelt

Amelt

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