Python データ型変換のあれこれ
こんばんは。
現役でデータアナリストとして活動しているゆわと申します。
この記事では日常的に使用しているpythonの技術の紹介をしていこうと思っています。
主にpythonのpandasでの技術をシリーズ化して配信していこうと思っておりますのでぜひこれからpythonでデータ分析をしてみたいという方に参考になれば嬉しいです。
それではさっそく本日のお題です!
「読み込んだデータの型を確認し変化してみよう!」です!
さっそく私が日頃から使用しているコードをざっと掲載しておく前に前処理を掲載しておきますね!
データ内にnullなどが含まれている場合、データ型を変換しようとした際にエラーなどが発生してしまうことがありますのでご注意を!
null値除外編
import pandas as pd
#データフレーム内にnull値が何個あるのか確認
df.isnull().sum()
#nullがあった場合null値をドロップします。
df = df.dropna()
df
上記のコード解説
import pandas as pd
ここでpandasをpdという名称でインポート
これがないとdf扱えないので必ずimportしてください。
df.isnull().sum()
dfという名前のついてるデータフレーム内にnullがいくつ存在しているのかを調べるコードです。
各カラムごとにいくつのnullが存在しているのかを調べてくれるものになります。
df = df.dropna()
df
これはdfという名前のデータフレームにnull値を除外したデータフレームを上書き保存しているコードになります。
null値を含むデータフレームを保存しておきたい場合は、
df = df.dropna()の左辺側df = のdfの部分を別名で記載してください。
データ型変換編
ではまずはコードから!
#1列のデータフレーム時に使用できるコード
df['user_id'] = df.astype('int64')
#複数列あり特定のカラムのみデータ型を変換する場合
df['user_id'] = df['user_id'].astype('int64')
上記のコード解説
df['user_id'] = df.astype('int64')
dfと名前の付けたデータフレームのカラム名user_idという列のデータをint64というデータ型へ変換してくださいというコードdf['user_id'] = df.astype('int64')
取り消し線の部分は任意に変更していい部分になります。
念の為の注意点ですが左辺と右辺のデータフレーム名は同一のものを使用してくださいね!
df['user_id'] = df['user_id'].astype('int64')
こちらは複数カラムあるデータフレームの特定列のデータ型を変更するためのコードになります。
意味合いとしては、dfという名前の付けたデータフレーム内のカラム名user_idのデータをint64の形に変換してくださいというコードになります。
上のコードの意味合いと変わりませんが、データフレーム内に複数列ある場合は必ずどのデータ列を変換対象とするのかを左辺右辺ともにしっかりと指定してあげてください。df['user_id'] = df['user_id'].astype('int64')
取り消し線部分は任意に書き換える場所
データ型について
上記では特に触れてこなかったですが、pythonのデータ型にはめちゃくちゃざっくりですが、
「int」「float」「str」があります。
「int」= 整数
「float」= 小数
「str」= 文字列
これはかなり簡易的かつ無理矢理理解しやすくしているので詳細をつきつめていくといろんな定義があるので時間がある時に調べてみてください!
とりあえずデータ分析の走りとしてはこれでいいと思います!
(きっと!w というか私もそこまで詳しく理解できてない。はず。w)
じゃあこのデータ型ってどこで指定するのよって話ですが
一番簡単な例としてはこちら
df['user_id'] = df.astype('int64')の('int64')ここの部分ですね。
ここを変えたいデータ型に指定してあげるといった具合です。
最後に
今回紹介したデータ変換は基礎の基礎です。
例えばデータの中に不純物(例えば数字列の中に急に文字列を含むような数字列があった場合)がある場合は普通にエラーが発生してしまいます。
そのエラーをどのように解消するのかなどは今後紹介していこうと思いますので首を長くしてお待ちいただけると幸いです。⇦