今回は、PythonのStringからfloatへの変換、およびその逆を扱います。
日々のプログラミングの中で、扱っているデータの型を変換する必要性を感じる場面に何度も出くわします。
Python String to float
Pythonは、入力のデータ型をStringからfloatに変換する組み込みの float() メソッドを提供しています。
構文は以下の通りです。
float(input_string)
|
例えば、以下の様になります。
inp = '99.23'
print("Input string:,inp)
opt = float(inp)
print('Input value after converting it to float type:,opt)
print(type(opt))
|
結果は以下の通りです。
Input string:
99.23
Input value after converting it to float type:
99.23
<class 'float'>
|
Python NumPy の文字列を float に変換します。
NumPyモジュールは、データの型を変換するために astype() メソッドを持っています。
astype() メソッドは、入力データの型を、パラメータで指定されたデータ型に変換します。
構文は以下の通りです。
input_string.astype(numpy.float)
|
例えば、以下の様になります。
import numpy
inp = numpy.array(["76.5", "75.5", "75.7"])
print ("Input array:)
print(str(inp))
opt = inp.astype(numpy.float)
print ("Output array after conversion:)
print(str(opt))
|
結果は以下の通りです。
Input array:
['76.5' '75.5' '75.7']
Output array after conversion:[ 76.5 75.5 75.7]
|
この記事もチェック:Pythonのfpdfモジュールを使って文字列やファイルをPDFに変換する方法
Pandas String から float への変換
Pandas モジュールは、データセットの特定のフィールドのデータ型を指定された型に変換するために astype() 関数も使用します。
構文は以下の通りです。
input.astype(float)
|
入力 csv ファイル:
import pandas
import numpy
inp = pandas.read_csv('C:UsersHPDesktopBook1.csv')
print(inp.dtypes)
inp['Value'] = inp['Value'].astype(float)
print(inp)
print(inp.dtypes)
|
例えば、以下の様になります。
Details object
Value float64dtype: object
Details Value
0 John:Pune 21.00
1 Bran:satara 22.00
2 Sam:Chennai 85.24
3 RHEY:Delhi 12.00
4 CRANNY:Karnatak 25.26
Details object
Value float64dtype: object
|
結果は以下の通りです。
str(input)
|
この記事もチェック:Pythonのfloat関数を使って整数や文字列を浮動小数点に変換する方法
Python の float から String への変換
Python の String には、任意の型の入力データを String 形式に変換する str() メソッドが組み込まれています。
構文は以下の通りです。
inp = 77.77
print(inp)
print(type(inp))
opt = str(inp)
print(opt)
print(type(opt))
|
例えば、以下の様になります。
77.77<class 'float'>
77.77<class 'str'>
|
結果は以下の通りです。
["%.2f" % i for i in input_array]
|
Python NumPy float から String への変換
Python NumPy の float 配列を String 要素の配列に変換するために List Comprehension を使用することができます。
構文は以下の通りです。
import numpy
inp = numpy.array([77.75, 77.25, 77.55])
print("Input array:,inp)
opt =["%.2f" % i for i in inp]
print("Converted array to string:)
print(opt)
|
例えば、以下の様になります。
Input array:
[77.75 77.25 77.55]
Converted array to string:['77.75', '77.25', '77.55']
|
上記のコードでは、”%.2f” は出力配列に小数点以下2桁までの精度を与えます。
結果は以下の通りです。

まとめ
今回は、Pythonのデータ構造を使って、文字列からfloat形式への変換、またその逆の変換を理解しました。