【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つの列を同時に別々の型へキャスト可能です。
-
Python・Pandas入門:DataFrameから列(カラム)を選択する方法
PandasのDataFrameから特定の列(カラム)を抽出したい場合は、角括弧 [ ] を使って列名を指定するだけで簡単に選択できます。特別な関数は不要で、以下のように書くだけです。dataFrame[ColumnName]この記事では、実際のコード例とともに、DataFrameから列を選択する基本的な方法をわかりやすく解説します。必要なライブラリのインポートまず、Pandasライブラリをインポートします。import pandas as pdサンプルDataFrameの作成次に、動作確認用のDataFrameを作成します。ここでは「Car」(車種)と「Units」(台数)の2つの列を持つデ
-
【Python】PandasのDataFrameで列の文字列を大文字に変換する方法
このチュートリアルでは、PandasのDataFrame(データフレーム)内の特定の列(例えば名前の列)をすべて大文字に変換する方法を解説します。主な方法は2つあり、それぞれコード例と実行結果とともに紹介します。方法1:str.upper() を使う方法Pandasでは、文字列型(object型)の列に対して .str アクセサを使うことで、Python標準の文字列メソッドを各要素に一括適用できます。大文字への変換には str.upper() を使用します。コード例# pandasパッケージをインポート import pandas as pd # DataFrame用のデータ data =