---
title: #10 データ型の変更（キャスト）
tags: 
author: [猫のタロー](https://convert.docswell.com/user/Cat_Taro)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/YJ6532DG7V.jpg?width=480
description: データサイエンス体験動画「データサイエンス　チュートリアル　猫のタロー編」の第10回目は、Section 8「データ型の変更（キャスト）」です。  Section 5「データ型」の⑩では、データ型を指定して、Excelを読み込む方法を解説しましたが、今回は、一度読み込んでしまったデータのデータ型を変更する方法を解説します。  ⑱ データ名.astype({“列名”:データ型})  同時に、データ構造（データの並び方）には、今回解説した「辞書」の他にも、「リスト」、「タプル」、「セット」等がありますので、ブログで確認してくださいね。  ■この動画のブログ  データサイエンス チュートリアル https://tutorial4datascience.blogspot.com/
published: September 07, 23
canonical: https://convert.docswell.com/s/Cat_Taro/KENVY6-2023-11-21-212945
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/YJ6532DG7V.jpg)

1
1st STEP ビッグデータの
読み込みとデータの確認
Section ８
データ型の変更（キャスト）
⑱ データ名.astype({“列名”:データ型})


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GJ5YL23XJ4.jpg)

Section 8 データ型の変更（キャスト）
１．参照した列のデータ型の変更
特定の列名のデータ型を変更（「キャスト」と言います）するときは、下記のプログラムを
使います。
Section 5の⑩では、Excelデータを読み込み直しましたが、一度読み込んだデータで
もこれを使用すれば、データ型を変更することができます。
⑱ データ名.astype({“列名”:データ型})
→astype( )に続けて、「{ }」の中に、「“ ”」で囲った列名、「：」、「データ型」を記入
することによりデータ型を変更することができます。このような 「{ }」内のデータ構造
を辞書と言います。
辞書をカンマで続けることで、2つ以上の列を変換することもできます。
「object」の他に、「整数」、「浮動小数点」などにも変更が可能です。
ただし、元のデータはそのままで変更されません。


# Page. 3

![Page Image](https://bcdn.docswell.com/page/9E2GL4ZQER.jpg)

3
Section 8 データ型の変更（キャスト）
参考１：データ型
（１）Pandasのデータ型には、主に次の3つがあります。
整数
数値型
浮動小数点数
float16、float32、float64
int8、int16、int32、int64
数字はビット精度を表し、省略して「int」、「float」で表してもOK！
文字列型
str
ブール型
bool
（２）PandasのDataFrameは列ごとに、それぞれデータ型を保持しています
（３）オブジェクト（object）は「数値」や「文字列」などだけでなく、リスト、
タプルなどのデータ（参考２）もオブジェクトとなります。
（４）pandasでは文字列を含むSeriesやDataFrameの列はobject型となるが、各要
素はそれぞれの型を持っており、残念なことに、すべての要素が文字列str型とは限りま
せん。


# Page. 4

![Page Image](https://bcdn.docswell.com/page/D7YVQMRY7M.jpg)

4
Section 8 データ型の変更（キャスト）
参考２：データ構造
astypeで使ったデータ構造（データの並び方）は「辞書」ですが、Pythonのデータ構造には、
主に下記の4つがあります。
リスト
list
タプル
tuple
辞書
dictionary
セット
set
リスト
[1,2,3]
・要素の書き換え可
・インデックス（番号）で要素にアクセス
タプル
(1,2,3)
・要素の書き換え不可
・インデックス（番号）で要素にアクセス
辞書
{“a”:1,”b”:2
,”c”:3}
・要素の書き換え可
・キー（文字列や数値）で要素にアクセス
セット
{1,2,3}
・重複する要素があっても無視される（一意
な値をもつ要素が残る）
・リスト型と違い、更新可能なオブジェクトを要
素として持てない（タプルは可能）
・要素の順序は保持しない


# Page. 5

![Page Image](https://bcdn.docswell.com/page/VENMKWDRJ8.jpg)

5
Section 8 データ型の変更（キャスト）
⑱ データ名.astype({“列名”:データ型})
「id_pos」の「CustomerID」をstr型（文字列型）に変換してみましょう。
astype( )に続けて、「{ }」の辞書で、列名とデータ型を指定すると、2つ以上の列を変換
することもできます。
ただし、元のデータ（id_pos）はそのままで変更されませんので、別のデータ名
「id_pos3」と名付けましょう。このように名前を付けることを「宣言」と言います。


# Page. 6

![Page Image](https://bcdn.docswell.com/page/Y79NVXGZ73.jpg)

6
Section 8 データ型の変更（キャスト）
⑨ データ名.dtypes
念のため、新たに宣言した「id_pos3」の「CustomerID」のデータ型を確認します。
確かに、float64からobjectになりました。文字列にするには、第2部セクション14を参照願います。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/G78KP28YJD.jpg)

7
Section 8 データ型の変更（キャスト）
⑱ データ名.astype({“列名”:データ型})
⑱を書いて結果が出ても、元のデータ「id_pos」は変更されていません。
【参考】 詳細は、「pandasのデータ型dtype一覧とastypeによる変換（キャスト）」を
参考にしてください！
https://note.nkmk.me/python-pandas-dtype-astype/


