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型に変換されます。
コメント