Pandasのastypeメソッドを使ってデータの型(dtype)を変換する方法

スポンサーリンク

今回は、Pythonのastype()メソッドを使って、DataFrameのカラムのデータ型変換について詳しく説明します。

スポンサーリンク

Python astype() 関数を理解する

Pythonのastype()メソッドによるデータ型変換の概念を深く理解する前に、まず次のようなシナリオを考えてみましょう。

データサイエンスや機械学習の分野では、しばしばデータの前処理や変換が必要な場面に出くわすことがあります。

正確には、データ値の変換はモデリングに向けた重要なステップです。

このとき、データ列の変換が登場します。

Pythonのastype()メソッドは、データセットやデータフレーム内の既存のデータ列のデータ型を設定したり変換したりすることができます

これにより、astype()関数を使用して、データ値や単一または複数の列のデータ型を全く別の形式に変更または変換することができます

次のセクションでは、astype()関数の構文について詳しく見ていきましょう。

構文 – 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

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に関連するこのような記事のために、ご期待ください、そして、それまで、幸せな学習!

タイトルとURLをコピーしました