Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Pandas入門】DataFrameの1つ以上の列のデータ型を変更する方法(astype活用)

このチュートリアルでは、PandasのDataFrameにおいて、1つまたは複数の列のデータ型を別の型へ変換する方法を解説します。変換にはDataFrame.astype()メソッドを使用します。

Python、Pandas、NumPyで定義されている任意のデータ型をastype()に渡すことで、列の要素のデータ型を変更できます。また、列名とデータ型を対応させた辞書(dict)を渡せば、特定の列だけを選んで変換することも可能です。それでは、実際のコード例を見ていきましょう。

すべての列のデータ型を文字列(str)に変換する

まずは、DataFrame全体のすべての列を一括してstr型に変換する基本的な例です。

# pandasライブラリをインポート
import pandas as pd

# DataFrameを作成
data_frame = pd.DataFrame({'No': [1, 2, 3], 'Name': ['Tutorialspoint', 'Mohit', 'Sharma'], 'Age': [25, 32, 21]})

# すべての列のデータ型をstrに変更
data_frame = data_frame.astype(str)

# dtypesメソッドでデータ型を確認
print(data_frame.dtypes)

実行結果

上記のプログラムを実行すると、すべての列のデータ型がobject(文字列)に変換されていることが確認できます。

No      object
Name    object
Age     object
dtype: object

特定の列だけデータ型を変更する

次に、Age列のみをint型からstr型へ変更してみましょう。この場合は、列名と希望するデータ型を指定した辞書を作成し、それをastype()メソッドに渡します。

# pandasライブラリをインポート
import pandas as pd

# DataFrameを作成
data_frame = pd.DataFrame({'No': [1, 2, 3], 'Name': ['Tutorialspoint', 'Mohit', 'Sharma'], 'Age': [25, 32, 21]})

# 列名とデータ型を指定した辞書を作成
data_types_dict = {'Age': str}

# 辞書をastypeメソッドに渡してAge列のみstr型に変更
data_frame = data_frame.astype(data_types_dict)

# dtypesメソッドでデータ型を確認
print(data_frame.dtypes)

実行結果

出力を見ると、Age列だけがint64からobject(文字列)に変換され、他の列は元のデータ型のまま維持されていることがわかります。

No       int64
Name    object
Age     object
dtype: object

まとめ

DataFrame.astype()メソッドを使えば、すべての列を一括で変換することも、辞書を利用して特定の列だけを変換することもできます。データ前処理の際によく使うテクニックなので、ぜひマスターしておきましょう。

なお、数値への変換にはpd.to_numeric()、日付への変換にはpd.to_datetime()といった専用関数も用意されています。用途に応じて使い分けるとより効率的です。

このチュートリアルについて不明な点やつまずいた箇所があれば、コメント欄でお気軽にお知らせください。

  1. Python・Pandas DataFrameで散布図を描画する方法

    散布図(Scatter Plot)は、2つの変数の関係を視覚的に把握するための代表的なデータ可視化手法です。Pandasでは plot.scatter() メソッドを使うことで、DataFrameのデータから簡単に散布図を作成できます。この記事では、チームごとのランキングポイントデータを例に、Pandas DataFrameから散布図を描画する手順を解説します。必要なライブラリのインポートまず、必要なライブラリをインポートします。データ操作には pandas、グラフの表示には matplotlib を使用します。import pandas as pd import matplotlib.pyp

  2. Python PandasでDataFrameの複数のデータ列をプロットする方法

    PythonのPandasライブラリを使えば、DataFrameに含まれる複数のデータ列を簡単に可視化できます。本記事では、plot()メソッドを使用し、kindパラメータをbarに設定することで、複数の列を1つの棒グラフとして描画する方法を解説します。必要なライブラリのインポートまず、PandasとMatplotlibという2つの必須ライブラリをインポートします。Pandasはデータ操作を、Matplotlibはグラフの表示を担当します。import pandas as pd import matplotlib.pyplot as mpサンプルデータの準備ここでは、各チームのランキングポイン