dataframeの型変換を考える
それ程、需要は多くないと思いますが、、、、、、。
環境はanacondaで動かすことを想定しています。
pythonでdataframeにcsv等をインポートした際に型を変更したい場合があると思います。
値をひとつづつ取り出して型を変換して入れ直すという手もありますがそれでは大変です。
できればカラム毎まとめて変換したいと思います。
例えば下記のテーブルがあるとしてこのcsvデータを取り込んだと仮定します。
name | age | birthday |
---|---|---|
johan | 21 | 1999-01-01 |
maria | 22 | 1999-01-02 |
johan | 23 | 1999-01-03 |
数字 → 文字列に変換
あまり需要はないと思いますが数字から文字列に変換してみたいと思います。
import pandas as pd
import datetime
test_data = pd.read_csv("test.csv")
type(test_data['age'][0])
test_data['age'] = test_data['age'].astype('str')
age = test_data['age'][0]
type(ages[0])
データフレームではキャストしてくれていてageのカラムはint型になっていると思います。
その後にastypeを使って列ごとキャスト型を変換しています。
これだけだと正直あんまり使いみちが無いなと思います。
日付のデータをタイムスタンプにする
先ほどのデータの日付のデータを見てみます。
文字列型になってしまっていると思います。
これだとデータとして扱いにくいと思うのでタイムスタンプに変換して見ます。
type(test_data['birthday'][0])
test_data['birthday'] = pd.to_datetime(test_data['birthday'])
type(test_data['birthday'][0])
最後に
データフレームのカラムごと型を変換して見たいと思い調べたまとめでした。