PandasにおけるDataFrameで文字列をfloat型に変換する

PandasにおけるDataFrameで文字列をfloat型に変換してみます。

float(フロート)型は変数のデータ型の一種で実数を扱えます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■DataFrameを作成する

DataFrameで文字列をfloat型に変換する前に、DataFrameを作成します。

■コード

import pandas as pd 

Data = {
    '年':['2021','2020','2019','2018','2018'],
    '月日':['0101','0925','1204','0803','0527']
}

df = pd.DataFrame(Data)

print(df)

print(df.dtypes)

インポートでPandasモジュールを呼び出します。Dataという変数を作成し、その中に、今回は「年」,「月日」という2つの列を追加し格納します。なお、各列の値は、数値ではなく文字列を入れています。

格納後、dfという変数を作成し、pd.DataFrame()と記述し、格納したDataを元にDataFrameを作成。作成後、dfという変数に格納します。

■実行

このスクリプトを実行すると、今回はデータ型を確認するdtypesを使用しましたので、作成したDataFrameの列の値がobject型(文字列)であるという情報が出力されました。

■DataFrameで文字列をfloat型に変換する

DataFrameの用意ができましたので、DataFrameで文字列をfloat型に変換するスクリプトを書いていきます。

■astype()関数を使用する

■コード

import pandas as pd 

Data = {
    '年':['2021','2020','2019','2018','2018'],
    '月日':['0101','0925','1204','0803','0527']
}

df = pd.DataFrame(Data)

df['年'] = df['年'].astype(float)

print(df)

print(df.dtypes)

DataFrameで文字列をfloat型に変換する場合は、dfという変数を作成し、格納したDataを元にDataFrameを作成。その後に、今回はdfという変数の「年」という列に対して、astype()関数を使用します。括弧内には、floatと記述します。これで、object型(文字列)からfloat型に変換することができます。変換後、dfという変数の「年」に変換したものを格納します。

格納後、print関数とdtypesを使用し、データ型の確認を行います。

■実行

このスクリプトを「df_col_value_2.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、作成したDataFrame内の「年」という列の値がobject型(文字列)からfloat型に変換されていることが確認できました。

■pandas.to_numeric()関数を使用する

次に、pandas.to_numeric()関数を使用することでも、DataFrameで文字列をfloat型に変換することができますので、やってみます。

■コード

import pandas as pd 

Data = {
    '年':['2021','2020','2019','2018','2018'],
    '月日':['0101','0925','1204','0803','0527']
}

df = pd.DataFrame(Data)

df['月日'] = pd.to_numeric(df['月日'])

print(df)

print(df.dtypes)

pandas.to_numeric()関数を使用し、DataFrameで文字列をfloat型に変換する場合は、今回はdfという変数の「月日」という列に対して、pandas.to_numeric()関数を使用します。括弧内には、dfという変数の「月日」という列を指定します。これで、object型(文字列)からfloat型に変換することができます。

■実行

実行してみると、作成したDataFrame内の「月日」という列の値がobject型(文字列)からint64型に変換されていることが確認できました。float型ではないですが、pandas.to_numeric()関数を使用すると、デフォルトでint64型、もしくはfloat64型に変換されます。

コメント

タイトルとURLをコピーしました