Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have 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])

最後に

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away