資料_第10回_v2

>100 Views

November 21, 23

スライド概要

データサイエンス体験動画「データサイエンス チュートリアル 猫のタロー編」の第10回目は、Section 8「データ型の変更(キャスト)」です。

Section 5「データ型」の⑩では、データ型を指定して、Excelを読み込む方法を解説しましたが、今回は、一度読み込んでしまったデータのデータ型を変更する方法を解説します。

⑱ データ名.astype({“列名”:データ型})

同時に、データ構造(データの並び方)には、今回解説した「辞書」の他にも、「リスト」、「タプル」、「セット」等がありますので、ブログで確認してくださいね。

■この動画のブログ

データサイエンス チュートリアル
https://tutorial4datascience.blogspot.com/

profile-image

すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけ、ブルシットジョブをこの世からなくしていきましょう!

関連スライド

各ページのテキスト
1.

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

2.

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

3.

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

4.

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

5.

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

6.

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

7.

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