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 )
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}')

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 2: ubah string menjadi float
input_string = '278.772' resultant_float = float(input_string) print(type(resultant_float )) print('Float Value=", resultant_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)

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 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 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)

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)

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))

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"))

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)

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 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)

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)

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 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)

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)

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.