Posted at

pythonのdataframe カラム毎にまるごと型変換

More than 1 year has passed since last update.


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])


最後に

データフレームのカラムごと型を変換して見たいと思い調べたまとめでした。