Pandas DataFrame の astype メソッド

Beginner

はじめに

この実験では、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 つの列 AB を持つ 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 つの列 AB を持つ 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 つの列 AB を持つ DataFrame を作成します。列 B に対して 'float' という引数を使って astype() メソッドを使った後、列 B のデータ型が float64 に変換されます。その後、DataFrame のデータ型を表示して変更を確認し、更新された値を見るために DataFrame 自体を表示します。

まとめ

この実験では、Pandas の astype() メソッドを使って DataFrame のデータ型を変換する方法を学びました。astype() メソッドを使ってすべての列のデータ型と特定の列のデータ型をどのように変換するかを見て、また変換後の結果となる DataFrame を確認しました。astype() メソッドは、Pandas の DataFrame 内のデータを操作および変換する際に便利です。