今回は、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 float64 dtype: 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 float64 dtype: 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形式への変換、またその逆の変換を理解しました。