はじめに
この実験では、Python の Pandas ライブラリの astype() メソッドの使い方を学びます。astype() メソッドを使うと、Pandas の DataFrame のデータ型を指定した型に変換できます。DataFrame のすべての列または特定の列のデータ型を変換できます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を使って練習しましょう。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化できません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション終了後にフィードバックを提供してください。すぐに問題を解決いたします。
DataFrame のすべての列のデータ型を変換する
DataFrame のすべての列のデータ型を指定した型に変換するには、astype() メソッドを使うことができます。以下は例です。
import pandas as pd
## Create a DataFrame
data = {'A':[1,2,3,4,5],'B':[6,7,8,9,10]}
df = pd.DataFrame(data)
print("----DataFrame のデータ型を変換する前-----")
print(df.dtypes)
## すべての列のデータ型を int32 に変換する
df = df.astype('int32')
print("----DataFrame のデータ型を変換した後-----")
print(df.dtypes)
出力:
----DataFrame のデータ型を変換する前-----
A int64
B int64
dtype: object
----DataFrame のデータ型を変換した後-----
A int32
B int32
dtype: object
この例では、2 つの列 A と B を持つ DataFrame を作成します。データ型を変換する前は、両方の列が int64 データ型です。'int32' という引数を使って astype() メソッドを使った後、両方の列が int32 データ型に変換されます。
DataFrame の特定の列のデータ型を変換する
DataFrame の特定の列のデータ型を変換するにも、astype() メソッドを使うことができます。以下は例です。
import pandas as pd
## Create a DataFrame
data = {'A':[1,2,3,4,5],'B':[6,7,8,9,10]}
df = pd.DataFrame(data)
print("----DataFrame のデータ型を変換する前-----")
print(df.dtypes)
## 列 'A' のデータ型を int32 に変換する
df['A'] = df['A'].astype('int32')
print("----DataFrame の単一の列のデータ型を変換した後-----")
print(df.dtypes)
出力:
----DataFrame のデータ型を変換する前-----
A int64
B int64
dtype: object
----DataFrame の単一の列のデータ型を変換した後-----
A int32
B int64
dtype: object
この例では、2 つの列 A と B を持つ DataFrame を作成します。データ型を変換する前は、列 A が int64 データ型で、列 B が int64 データ型です。列 A に対して 'int32' という引数を使って astype() メソッドを使った後、列 A のみが int32 に変換され、列 B のデータ型は int64 のままです。
変換後の DataFrame を確認する
DataFrame のデータ型を変換した後、変換が成功したかどうかを確認するために更新された DataFrame を確認できます。以下は例です。
import pandas as pd
## Create a DataFrame
data = {'A':[1,2,3,4,5],'B':[6,7,8,9,10]}
df = pd.DataFrame(data)
print("----DataFrame の単一の列のデータ型を変換した後-----")
df['B'] = df['B'].astype('float')
print(df.dtypes)
print("-----float 型に変換後の DataFrame-----")
print(df)
出力:
----DataFrame の単一の列のデータ型を変換した後-----
A int64
B float64
dtype: object
-----float 型に変換後の DataFrame-----
A B
0 1 6.0
1 2 7.0
2 3 8.0
3 4 9.0
4 5 10.0
この例では、2 つの列 A と B を持つ DataFrame を作成します。列 B に対して 'float' という引数を使って astype() メソッドを使った後、列 B のデータ型が float64 に変換されます。その後、DataFrame のデータ型を表示して変更を確認し、更新された値を見るために DataFrame 自体を表示します。
まとめ
この実験では、Pandas の astype() メソッドを使って DataFrame のデータ型を変換する方法を学びました。astype() メソッドを使ってすべての列のデータ型と特定の列のデータ型をどのように変換するかを見て、また変換後の結果となる DataFrame を確認しました。astype() メソッドは、Pandas の DataFrame 内のデータを操作および変換する際に便利です。