Cara mengonversi string menjadi float di python

Mengubah satu jenis tipe data ke jenis lain dengan Python melibatkan penggunaan berbagai fungsi. Artikel ini bertujuan untuk memberikan detail tentang cara mengubah string menjadi float. Fungsi float () di Python dapat digunakan untuk mengubah string menjadi float. Ini adalah fitur bawaan untuk mengubah bilangan floating-point menjadi entitas. Secara internal, fungsi float () memanggil flodi() fungsi dari item yang ditentukan.

String adalah urutan satu atau lebih karakter (huruf, angka, simbol). String adalah jenis data yang umum dalam program komputer. Kita perlu mengonversi string menjadi angka atau angka menjadi string secara teratur, terutama saat berhadapan dengan data yang dibuat pengguna.

Fungsi di Python mengubah string angka menjadi angka floating-point.

Float, integer, atau string sangat berguna. Umumnya, itu harus dalam format desimal yang benar jika berupa string. Hasilnya, ini memberi Anda objek mengambang.

ValueError dimunculkan jika string yang diberikan memiliki sesuatu selain representasi floating-point dari sebuah angka. Tapi, jika tidak ada argumen yang diberikan, 0.0 dikembalikan. Di sisi lain, Error Overflow dimunculkan jika pernyataan yang diberikan berada di luar kisaran float.

Cara mengonversi string menjadi float dengan Python

Mari kita lihat contoh Python dasar untuk mengonversi string menjadi float.

string_val="146.9856"
float_val = float(string_val)
print(type(float_val))
print ('Float Value=", float_val )
Cara mengonversi string menjadi float dengan Python

Apa tujuan mengubah string menjadi float?

Jika kita mendapatkan nilai float dari input pengguna melalui terminal atau membacanya dari file, itu adalah objek string. Akibatnya, kita harus mengonversinya dengan tepat menjadi float untuk melakukan operasi yang diperlukan seperti penjumlahan, perkalian, dan sebagainya.

# input_through_terminal.py
# get a float value from user input through the terminal 
string_input_1 = input('Input the first floating point value:n')
float_input_1 = float(string_input_1)
string_input_2 = input('Input the second floating point value:n')
float_input_2 = float(string_input_2)
print(f'Sum of {string_input_1} and {string_input_2} is {float_input_1+float_input_2}')
dapatkan nilai float dari input pengguna melalui terminal

Fungsi float ()

Anda dapat mengonversi hampir semua tipe data menjadi bilangan floating-point menggunakan fungsi ini. Sintaksnya adalah sebagai berikut:

Hanya satu parameter yang diterima oleh metode ini. Namun, itu opsional. Jika tidak ada argumen yang diberikan, nilai resultan dari metode ini adalah 0,0.

Contoh 1: Ubah string menjadi float

input_string= "821.672"
print(input_string)
print(type(input_string))
# converting the string variable to a float value
resultant_float = float(input_string)
print(resultant_float )
print(type(resultant_float ))
Contoh 1: Ubah string menjadi floatContoh 1: Ubah string menjadi float

Contoh 2: ubah string menjadi float

input_string = '278.772'
resultant_float = float(input_string)
print(type(resultant_float ))
print('Float Value=", resultant_float )

Contoh 2: ubah string menjadi floatContoh 2: ubah string menjadi float

Konversi angka mengambang dari string desimal

Kelas float dapat digunakan untuk mengubah string desimal menjadi nomor float. Sebagai contoh, pertimbangkan yang berikut ini:

Berikut ini adalah kode untuk mengubah string menggunakan float:

#demonstrating converting a string to float
str_val_1 = '25.58'
b_val = 14.66
c_val= float(str_val_1) + b_val
print ("The value of c_val = ",c_val)
Konversi angka mengambang dari string desimalKonversi angka mengambang dari string desimal

Perhatikan bahwa mencoba menggunakan int di sini akan menghasilkan kesalahan.

mengonversi daftar desimal menjadi float di untuk objek daftar

Demikian pula, alih-alih int, Anda dapat menggunakan float untuk mengonversi daftar string angka desimal. Berikut contohnya:

Contoh 1: mengonversi daftar desimal menjadi float di untuk objek daftar

#demonstrating string to float in a list
string_list = ['34.712', '12.36', '387.49', '89.09', '156.60']
float_list = [float(val) for val in string_list]

print (float_list)
Contoh 1: mengonversi daftar desimal menjadi float di untuk objek daftarContoh 1: mengonversi daftar desimal menjadi float di untuk objek daftar

Contoh 2: mengonversi daftar desimal menjadi float di untuk objek daftar

number_list = ["8.88","6.66","1.11","4.44","9.99"]
float_list = [ float(float_val) for float_val in number_list]
print(number_list)
print(float_list)
Contoh 2: mengonversi daftar desimal menjadi float di untuk objek daftarContoh 2: mengonversi daftar desimal menjadi float di untuk objek daftar

Contoh 3: mengonversi daftar desimal menjadi float di untuk objek daftar

#convert_decimal_list_float.py
number_list = ["8.88","6.66","1.11","4.44","9.99"]
sum = 0
for x in number_list :
  sum += float(x)
print(sum)
Contoh 3: mengonversi daftar desimal menjadi float di untuk objek daftarContoh 3: mengonversi daftar desimal menjadi float di untuk objek daftar

Ubah string angka yang dipisahkan koma menjadi objek mengambang

Katakanlah kita memiliki string yang disebut “10.974,76,” yang menyertakan angka dan koma. Mengubah jenis string ini menjadi float agak sulit.
Kami akan mendapatkan kesalahan setiap kali kami mencoba untuk mentransfernya ke fungsi float () secara langsung. Sebagai contoh,

string_val = "10,974.76,"
num_val = float(string_val)
kesalahan saat mengonversi string yang menyertakan angka dan koma menjadi floatkesalahan saat mengonversi string yang menyertakan angka dan koma menjadi float

float () mengembalikan kesalahan karena string berisi karakter selain digit. Jadi, sebelum meneruskan string ke fungsi float (), kita perlu menghapus semua koma tambahan. Sebagai contoh,

konversi nilai string dengan koma menjadi nilai float

string_val = "10,974.76"
num_val = float(string_val.replace(',', ''))
print(num_val)
print(type(num_val))
konversi nilai string dengan koma menjadi nilai floatkonversi nilai string dengan koma menjadi nilai float

Metode untuk memastikan apakah sebuah string mengambang

def check_is_float(val):
try:
  float(val)
  return True
except:
  return False

Ketika metode di atas dijalankan untuk setiap nilai string berikut, hasilnya ditunjukkan di bawah ini.

Nilai string Status Deskripsi
“.1” Benar mantissa saja
“123.E4” Benar Notasi eksponensial
“-INF” Benar Ketidakterbatasan negatif
“NaNanananaBATMAN” Salah saya Batman
“NaN” Benar Bukan angka
“ T n12 r n” Benar spasi diabaikan
“-127” Benar Spasi dipangkas
“” Salah String kosong
“127” Benar String yang lolos
Benar Benar Kebenaran manis murni
“123.456” Benar Desimal
Salah Benar Begitu salah itu menjadi benar
“Benar” Salah Kebohongan hina yang keji
“(1)” Salah Tanda kurung itu buruk
“- + 1” Salah Buatlah keputusanmu
“+ 1e1.3” Salah Tidak ada desimal dalam eksponen
“+ 1e1 ^ 5” Salah Eksponen mewah tidak diinterpretasikan
“+ 1e1” Benar Plus tidak masalah dengan eksponen
“-5e-5” Benar Naikkan ke angka negatif
0 ** 0 Benar 0___0 Eksponen
“0E0” Benar Eksponensial, pindahkan titik 0 tempat
“1.234” Salah Gtfo koma
u ‘ x30 ′ Benar Unicode baik-baik saja.
“BATAL” Salah Null tidak istimewa
0x3fade Benar Heksadesimal
“6e7777777777777” Benar Susut hingga tak terbatas
1.797693e + 308 Benar Ini adalah nilai maksimal
“Tak terbatas” Benar Sama seperti inf
“InfinityandBEYOND” Salah Karakter tambahan menghancurkannya
“12.34.56” Salah Hanya diperbolehkan satu titik
kamu empat Salah Bahasa Jepang ‘4’ bukanlah pelampung.
“# 56” Salah Tanda Pound
“56%” Salah Persen dari apa?

nomor cepat

fastnumbers adalah modul dengan tiga tujuan dalam mengurangi urutan kepentingan mengapa modul itu dibuat:

Sediakan sekumpulan fungsi utilitas yang membungkus penggantian int dan float di atas dan memberikan penanganan error yang sederhana, ringkas, efisien, cepat, dan serbaguna.

Sediakan sekumpulan fungsi untuk menentukan dengan cepat apakah suatu input dapat diubah menjadi int atau float.

Menyediakan pengganti drop-in untuk int bawaan Python dan rata-rata mengapung hingga 2 kali lebih cepat. Kecuali untuk beberapa kasus sudut unik yang ditentukan dalam dokumentasi API untuk fungsi tersebut, fungsi ini harus berperilaku persis seperti bawaan Python.

from fastnumbers import fast_real
fast_real("876.623623")
type(fast_real("89.7567"))
fast_real("mine")
type(fast_real("345"))
nomor cepatnomor cepat

Dalam Pandas DataFrame, bagaimana Anda mengonversi string menjadi float?

Untuk mengonversi string menjadi float di Pandas DataFrame, Anda dapat menggunakan salah satu dari dua metode di bawah ini, bergantung pada situasinya:

(1) astype (float)

df['DataFrame Column'] = df['DataFrame Column'].astype(float)

(2) to_numerik

df['DataFrame Column'] = pd.to_numeric(df['DataFrame Column'],errors="coerce")

Di sini, Anda akan belajar cara mengubah string menjadi float dengan tiga cara berbeda:

  • Untuk kolom yang berisi nilai numerik dan non-numerik
  • Untuk kolom yang berisi nilai numerik dan non-numerik
  • Untuk DataFrame lengkap

Mengonversi String menjadi Float dalam Skenario DataFrame Pandas

Skenario 1: String digunakan untuk menyimpan nilai numerik

Mari buat DataFrame hanya dengan dua kolom untuk menyederhanakan semuanya.

Kode untuk membuat DataFrame dengan Python ditampilkan di bawah ini. Di sini, nilai kolom ‘Biaya’ disimpan sebagai string (dengan tanda kutip tunggal di sekitarnya). Perhatikan bahwa prinsip yang sama akan berlaku jika tanda kutip ganda digunakan sebagai pengganti tanda kutip tunggal):

import pandas as pd

my_data = {'Item': ['EFG','JKL'],
'Cost': ['250','270']
}
_df = pd.DataFrame(my_data)
print (_df)
print (_df.dtypes)
Skenario 1: String digunakan untuk menyimpan nilai numerikSkenario 1: String digunakan untuk menyimpan nilai numerik

Tujuannya adalah untuk membuat nilai mengambang di kolom ‘Biaya’.

Konversi menjadi float kemudian dapat dilakukan dengan menggunakan metode astype (float):

df['DataFrame Column'] = df['DataFrame Column'].astype(float)

Kolom ‘Biaya’ adalah ‘Kolom DataFrame’ dalam arti contoh kami. Hasilnya, kode lengkap untuk mengubah nilai menjadi float adalah:

import pandas as pd

my_data = {'Item': ['EFG','JKL'],
'Cost': ['250','270']
}

_df = pd.DataFrame(my_data)
_df['Cost'] = _df['Cost'].astype(float)

print (_df)
print (_df.dtypes)
Skenario 1: Biaya dikonversi menjadi floatSkenario 1: Biaya dikonversi menjadi float
Skenario 2: Nilai numerik dan non-numerik

Buat DataFrame baru dengan dua kolom (‘Item’ dan ‘Cost’). Namun, kali ini, nilai di kolom ‘Biaya’ akan menyertakan data numerik dan non-numerik:

Di Python, seperti inilah tampilan DataFrame:

import pandas as pd

my_data = {'Item': ['WWW','KKK','RRR','FFF'],
'Cost': ['620','EFG860','590','135GHL']
}

_data_frame = pd.DataFrame(my_data)

print (_data_frame)
print(_data_frame.dtypes)
Skenario 2: Nilai numerik dan non-numerik sebelum konversiSkenario 2: Nilai numerik dan non-numerik sebelum konversi

Form data kolom ‘Biaya’ sama seperti sebelumnya: Objek.
Setelah itu, Anda dapat menggunakan metode to_numeric untuk mengonversi nilai di kolom ‘Biaya’ menjadi float sebagai berikut:

df['DataFrame Column'] = pd.to_numeric(df['DataFrame Column'], errors="coerce")

Anda dapat mengonversi nilai non-numerik menjadi NaN dengan menyetel error = ‘coerce’.

Demi kenyamanan Anda, berikut adalah kode lengkapnya:

import pandas as pd

my_data = {'Item': ['WWW','KKK','RRR','FFF'],
'Cost': ['620','EFG860','590','135GHL']
}

_data_frame = pd.DataFrame(my_data)
_data_frame['Cost'] = pd.to_numeric(_data_frame['Cost'], errors="coerce")

print (_data_frame)
print(_data_frame.dtypes)
Skenario 2: Nilai numerik dan non-numerik sebelum konversiSkenario 2: Nilai numerik dan non-numerik setelah konversi

Untuk melangkah lebih jauh, Anda dapat menggunakan df.replace untuk mengganti nilai ‘NaN’ dengan nilai ‘0’.

import pandas as pd
import numpy as np

my_data = {'Item': ['WWW','KKK','RRR','FFF'],
'Cost': ['620','EFG860','590','135GHL']
}

_data_frame = pd.DataFrame(my_data)
_data_frame['Cost'] = pd.to_numeric(_data_frame['Cost'], errors="coerce")
_data_frame = _data_frame.replace(np.nan, 0, regex=True)


print (_data_frame)
print(_data_frame.dtypes)
Skenario 2: Nilai numerik dan non-numerik dan ganti setelah konversiSkenario 2: Nilai numerik dan non-numerik dan ganti setelah konversi
Skenario 3: Ubah String menjadi Floats, Di Bawah Seluruh DataFrame

Mari buat DataFrame dengan tiga kolom di mana semua nilai disimpan sebagai string (dalam tanda kutip tunggal) untuk skenario akhir:

import pandas as pd

my_data = {'Cost_1': ['520','850','300','470','220'],
'Cost_2': ['750','370','590','980','310'],
'Cost_3': ['350','840','240','190','930']
}

_data_frame = pd.DataFrame(my_data)
print (_data_frame)
print (_data_frame.dtypes)
Skenario 3: Ubah String menjadi Floats, Di Bawah Seluruh DataFrameSkenario 3: Ubah String menjadi Floats, Di Bawah Seluruh DataFrame

Dari apa yang Anda amati, keseluruhan kolom di DataFrame memiliki tipe data yang sama: objek.

Anda kemudian dapat menggunakan sintaks berikut untuk mengonversi semua nilai di DataFrame menjadi float:

Hasilnya, kode Python lengkap untuk melakukan konversi adalah sebagai berikut:

import pandas as pd

my_data = {'Cost_1': ['520','850','300','470','220'],
'Cost_2': ['750','370','590','980','310'],
'Cost_3': ['350','840','240','190','930']
}

_data_frame = pd.DataFrame(my_data)
_data_frame = _data_frame.astype(float)

print (_data_frame)
print (_data_frame.dtypes)
mengonversi semua nilai di DataFrame menjadi float menggunakan df.dastype ()mengonversi semua nilai di DataFrame menjadi float menggunakan df.dastype ()

Pikiran Akhir

Artikel ini telah menunjukkan cara menggunakan metode bawaan untuk mengonversi tipe data asli string menjadi tipe data float. Di Python, kemampuan untuk mengubah tipe data memberi Anda lebih banyak fleksibilitas saat menulis program. Kami belajar bagaimana mengubah nilai string menjadi float dalam tutorial ini. Jika kami tidak yakin apa nilai penerimaannya, praktik pengkodean yang baik adalah mengonversinya terlebih dahulu.