Pandas DataFrame で文字列を整数に変換する 3 つの方法を以下に示します。

(1) astype(int)アプローチ:

df["dataframe_column"] = df["dataframe_column"].astype(int)

(2)apply(int)アプローチ:

df["dataframe_column"] = df["dataframe_column"].apply(int)

(3) map(int)アプローチ:

df["dataframe_column"] = df["dataframe_column"].map(int)

文字列を整数に変換する手順の例を確認してみましょう。

Pandas DataFrame で文字列を整数に変換する手順

ステップ1: DataFrameを作成する

まず、次のデータに基づいて DataFrame を作成するとします。

productprice
aaa210
bbb250

価格列の値を引用符で囲むことで、文字列として取得できます。

Python での DataFrame は次のようになります。

import pandas as pd

data = {"product": ["aaa", "bbb"], "price": ["210", "250"]}

df = pd.DataFrame(data)

print(df)
print(df.dtypes)

コードを実行すると、価格列の下の値が文字列 (データ型はオブジェクト) であることがわかります。

Pandas DataFrame で文字列を整数に変換する (string to integer) 1

ステップ2: Pandas DataFrameで文字列を整数に変換する

文字列を整数に変換するには、astype(int) を使用します。

df["dataframe_column"] = df["dataframe_column"].astype(int)

私たちの例:

import pandas as pd

data = {"product": ["aaa", "bbb"], "price": ["210", "250"]}

df = pd.DataFrame(data)
df["price"] = df["price"].astype(int)

print(df)
print(df.dtypes)

ご覧のとおり、「price」列の値は整数になりました。

Pandas DataFrame で文字列を整数に変換する (string to integer) 2

ステップ3(オプション):各メソッドの実行時間を確認する

timeit モジュールを使用して、各メソッドの実行時間をチェックできます。

import pandas as pd
import timeit

data = {"product": ["aaa", "bbb"], "price": ["210", "250"]}
df = pd.DataFrame(data)


def method_astype():
    df["price"] = df["price"].astype(int)


def method_apply():
    df["price"] = df["price"].apply(int)


def method_map():
    df["price"] = df["price"].map(int)


methods_used = [method_astype, method_apply, method_map]

for i in methods_used:
    print(f"{i.__name__}: {timeit.timeit(i, number=10000):.6f} seconds")

結果は次のとおりです。

Pandas DataFrame で文字列を整数に変換する (string to integer) 3