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

【Python】Pandas DataFrameの特定の列のみデータ型をキャストする方法

PandasのDataFrameで特定の1列だけデータ型を変換(キャスト)したい場合は、astype()メソッドを使用します。まず、2つの列を持つDataFrameを作成しましょう。片方は「float64」型、もう片方は「int64」型です。

dataFrame = pd.DataFrame(
   {
      "Reg_Price": [7000.5057, 1500, 5000, 8000, 9000.75768, 6000],
      "Units": [90, 120, 100, 150, 200, 130]
   }
)

各列のデータ型を確認します。

dataFrame.dtypes

ここで、「Units」列だけをint64からint32にキャストしたいとします。その場合は、辞書形式で「列名: 変換後の型」を指定してastype()を呼び出します。

dataFrame.astype({'Units': 'int32'}).dtypes

サンプルコード

以下が完全なコード例です。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
   {
      "Reg_Price": [7000.5057, 1500, 5000, 8000, 9000.75768, 6000],
      "Units": [90, 120, 100, 150, 200, 130]
   }
)

print("DataFrame ...\n", dataFrame)
print("\nDataFrameのデータ型 ...\n", dataFrame.dtypes)
print("\nUnits列のみをint32にキャスト ...")

print("\n更新後のDataFrameのデータ型 ...\n", dataFrame.astype({'Units': 'int32'}).dtypes)

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame ...
   Reg_Price   Units
0 7000.50570     90
1 1500.00000    120
2 5000.00000    100
3 8000.00000    150
4 9000.75768    200
5 6000.00000    130

DataFrameのデータ型 ...
Reg_Price    float64
Units          int64
dtype: object

Units列のみをint32にキャスト ...

更新後のDataFrameのデータ型 ...
Reg_Price    float64
Units          int32
dtype: object

ポイント解説

astype()に辞書を渡すことで、指定した列のみが変換され、他の列(この例では「Reg_Price」)は元のfloat64型のまま維持されます。これは、DataFrame全体の型を一括変更したくない場合に非常に便利な手法です。

また、複数の列をそれぞれ異なる型に変換したい場合も、辞書に「列名: 型」のペアを追加するだけで簡単に対応できます。例えば dataFrame.astype({'Units': 'int32', 'Reg_Price': 'float32'}) のように記述すれば、2つの列を同時に別々の型へキャスト可能です。

  1. Python・Pandas入門:DataFrameから列(カラム)を選択する方法

    PandasのDataFrameから特定の列(カラム)を抽出したい場合は、角括弧 [ ] を使って列名を指定するだけで簡単に選択できます。特別な関数は不要で、以下のように書くだけです。dataFrame[ColumnName]この記事では、実際のコード例とともに、DataFrameから列を選択する基本的な方法をわかりやすく解説します。必要なライブラリのインポートまず、Pandasライブラリをインポートします。import pandas as pdサンプルDataFrameの作成次に、動作確認用のDataFrameを作成します。ここでは「Car」(車種)と「Units」(台数)の2つの列を持つデ

  2. 【Python】PandasのDataFrameで列の文字列を大文字に変換する方法

    このチュートリアルでは、PandasのDataFrame(データフレーム)内の特定の列(例えば名前の列)をすべて大文字に変換する方法を解説します。主な方法は2つあり、それぞれコード例と実行結果とともに紹介します。方法1:str.upper() を使う方法Pandasでは、文字列型(object型)の列に対して .str アクセサを使うことで、Python標準の文字列メソッドを各要素に一括適用できます。大文字への変換には str.upper() を使用します。コード例# pandasパッケージをインポート import pandas as pd # DataFrame用のデータ data =