Pandas DataFrameで文字列を浮動小数点数に変換する2つの方法を紹介します。
(1) astype(float)
df["DataFrame Column"] = df["DataFrame Column"].astype(float)
(2) apply(float)
df["DataFrame Column"] = df["DataFrame Column"].apply(float)
Pandas DataFrame で文字列を浮動小数点数に変換するシナリオ
シナリオ1: 文字列として保存された数値
簡単にするために、「Price」列に文字列として保存された数値が含まれる DataFrame を作成しましょう。
import pandas as pd
data = {
"Product": ["aaa", "bbb", "ccc", "ddd", "eee"],
"Price": ["250", "270", "350", "400", "550"],
}
df = pd.DataFrame(data)
print(df)
print(df.dtypes)
Python でコードを実行すると、「Price」列のデータ型がオブジェクトであることがわかります。

目標は、「price」列の値を浮動小数点数に変換することです。
次に、astype(float) アプローチを使用して float への変換を実行できます。
df["DataFrame Column"] = df["DataFrame Column"].astype(float)
この例では、「DataFrame 列」は「Price」列です。したがって、値を浮動小数点数に変換する完全なコードは以下のようになります。
import pandas as pd
data = {
"Product": ["aaa", "bbb", "ccc", "ddd", "eee"],
"Price": ["250", "270", "350", "400", "550"],
}
df = pd.DataFrame(data)
df["Price"] = df["Price"].astype(float)
print(df)
print(df.dtypes)
「Price」列が float に変換されていることがわかります。

apply(float) を使用すると同じ結果が得られます。
import pandas as pd
data = {
"Product": ["aaa", "bbb", "ccc", "ddd", "eee"],
"Price": ["250", "270", "350", "400", "550"],
}
df = pd.DataFrame(data)
df["Price"] = df["Price"].apply(float)
print(df)
print(df.dtypes)
結果:

シナリオ2: データフレーム全体の文字列を浮動小数点数に変換する
2 番目のシナリオでは、すべての値が文字列として保存される 3 つの列を持つ DataFrame を作成します。
import pandas as pd
data = {
"Price_1": ["300", "750", "600", "770", "920"],
"Price_2": ["250", "270", "950", "580", "410"],
"Price_3": ["530", "480", "420", "290", "830"],
}
df = pd.DataFrame(data)
print(df)
print(df.dtypes)
ご覧のとおり、DataFrame 全体のすべての列のデータ型はオブジェクトです。

次に、次の構文を追加して、DataFrame 全体のすべての値を float に変換できます。
df = df.astype(float)
したがって、変換を実行するための完全な Python コードは次のようになります。
import pandas as pd
data = {
"Price_1": ["300", "750", "600", "770", "920"],
"Price_2": ["250", "270", "950", "580", "410"],
"Price_3": ["530", "480", "420", "290", "830"],
}
df = pd.DataFrame(data)
df = df.astype(float)
print(df)
print(df.dtypes)
DataFrame 全体の下のすべての列が float になりました。
