今回は、Pythonのastype()メソッドを使って、DataFrameのカラムのデータ型変換について詳しく説明します。
Python astype() 関数を理解する
Pythonのastype()メソッドによるデータ型変換の概念を深く理解する前に、まず次のようなシナリオを考えてみましょう。
データサイエンスや機械学習の分野では、しばしばデータの前処理や変換が必要な場面に出くわすことがあります。
正確には、データ値の変換はモデリングに向けた重要なステップです。
このとき、データ列の変換が登場します。
Pythonのastype()メソッドは、データセットやデータフレーム内の既存のデータ列のデータ型を設定したり変換したりすることができます。
これにより、astype()関数を使用して、データ値や単一または複数の列のデータ型を全く別の形式に変更または変換することができます。
次のセクションでは、astype()関数の構文について詳しく見ていきましょう。
この記事もチェック:PythonでPandasデータフレームの列の順序を変更する4つの方法
構文 – astype() 関数
以下の構文を見てください。
DataFrame.astype(dtype, copy = True , errors = ’ raise ’)
|
- dtype: データフレーム全体に適用したいデータ型。
- copy: True に設定すると、データセットに変更を加えた別のコピーを作成します。
- エラー。raise’ にセットすることで、関数が例外を発生させることを許可します。そうでない場合は、’ignore’に設定します。
関数の構文を理解したところで、次はその実装に焦点を当てましょう。
1. Python astype()とDataFrameの組み合わせ
この例では、pandas.DataFrame()
メソッドを用いて、以下のように辞書からDataFrameを作成しました。
例えば、以下の様になります。
import pandas as pd
data = { "Gender" :[ 'M' , 'F' , 'F' , 'M' , 'F' , 'F' , 'F' ], "NAME" :[ 'John' , 'Camili' , 'Rheana' , 'Joseph' , 'Amanti' , 'Alexa' , 'Siri' ]}
block = pd.DataFrame(data)
print ( "Original Data frame: )
print (block)
block.dtypes |
結果は以下の通りです。
キーの元のデータ型を見てみましょう。
Original Data frame: Gender NAME
0 M John
1 F Camili
2 F Rheana
3 M Joseph
4 F Amanti
5 F Alexa
6 F Siri
Gender object
NAME object
dtype: object
|
ここで、’Gender’ カラムに astype() メソッドを適用し、データ型を ‘category’ に変更しました。
block[ 'Gender' ] = block[ 'Gender' ].astype( 'category' )
block.dtypes |
結果は以下の通りです。
Gender category NAME object
dtype: object
|
この記事もチェック:Pandas DataFrameの単一カラムの名前を変更する
2. データセットによるPython astype()の実装
ここでは、pandas.read_csv()関数を用いてデータセットをインポートしています。
データセットはこちらで確認できます。
例えば、以下の様になります。
import pandas
BIKE = pandas.read_csv( "Bike.csv" )
BIKE.dtypes |
カラムの元のデータ型は
temp float64 hum float64 windspeed float64 cnt int64 season_1 int64 season_2 int64 season_3 int64 season_4 int64 yr_0 int64 yr_1 int64 mnth_1 int64 mnth_2 int64 mnth_3 int64 mnth_4 int64 mnth_5 int64 mnth_6 int64 mnth_7 int64 mnth_8 int64 mnth_9 int64 mnth_10 int64 mnth_11 int64 mnth_12 int64 weathersit_1 int64 weathersit_2 int64 weathersit_3 int64 holiday_0 int64 holiday_1 int64 dtype: object
|
ここで、変数’season_1’と’temp’のデータ型を変更することにしました。
このように、astype()関数を使えば、複数のカラムのデータ型を一度に変更することができますね。
BIKE = BIKE.astype({ "season_1" : 'category' , "temp" : 'int64' })
BIKE.dtypes |
出力してみましょう。
temp int64 hum float64 windspeed float64 cnt int64 season_1 category season_2 int64 season_3 int64 season_4 int64 yr_0 int64 yr_1 int64 mnth_1 int64 mnth_2 int64 mnth_3 int64 mnth_4 int64 mnth_5 int64 mnth_6 int64 mnth_7 int64 mnth_8 int64 mnth_9 int64 mnth_10 int64 mnth_11 int64 mnth_12 int64 weathersit_1 int64 weathersit_2 int64 weathersit_3 int64 holiday_0 int64 holiday_1 int64 dtype: object
|
まとめ
ここまでで、このトピックは終了です。
もし何か疑問があれば、お気軽にコメントください。
Pythonに関連するこのような記事のために、ご期待ください、そして、それまで、幸せな学習!