- Spasi
- Koma
- Karakter spesial
Saat ini terjadi, Anda harus terlebih dahulu menghapus karakter ini dari string sebelum mengubahnya menjadi pelampung
Contoh berikut menunjukkan cara mengatasi kesalahan ini dalam praktiknya
Cara Mereproduksi Kesalahan
Misalkan kita memiliki DataFrame pandas berikut
import pandas as pd #create DataFrame df = pd.DataFrame({'store': ['A', 'B', 'C', 'D'], 'revenue': ['$400.42', '$100.18', '$243.75', '$194.22']}) #view DataFrame print(df) store revenue 0 A $400.42 1 B $100.18 2 C $243.75 3 D $194.22 #view data type of each column print(df.dtypes) store object revenue object dtype: object _Sekarang misalkan kita mencoba mengonversi kolom pendapatan dari string menjadi float
#attempt to convert 'revenue' from string to float df['revenue'] = df['revenue'].astype(float) ValueError: could not convert string to float: '$400.42'Kami menerima kesalahan karena kolom pendapatan berisi tanda dolar di string
Cara Memperbaiki Kesalahan
Cara untuk mengatasi error ini adalah dengan menggunakan fungsi replace() untuk mengganti tanda dolar di kolom pendapatan dengan apa pun sebelum melakukan konversi
#convert revenue column to float df['revenue'] = df['revenue'].apply(lambda x: float(x.split()[0].replace('$', ''))) #view updated DataFrame print(df) store revenue 0 A 400.42 1 B 100.18 2 C 243.75 3 D 194.22 #view data type of each column print(df.dtypes) store object revenue float64 dtype: objectPerhatikan bahwa kami dapat mengonversi kolom pendapatan dari string menjadi float dan kami tidak menerima kesalahan apa pun karena kami menghapus tanda dolar sebelum melakukan konversi Dalam tutorial Analisis Data Panda hari ini saya ingin membahas dasar-dasar konversi kolom Python DataFrame ke string Kami akan fokus pada beberapa kasus penggunaan utama di sini
- Mengubah kolom tertentu menjadi string menggunakan metode astype()
- Mengekspor DataFrame ke objek string
- Mengubah objek Datetime menjadi string
Data contoh
Kami akan mulai dengan membuat beberapa data pengujian untuk Anda ikuti bersama latihan ini
#import Pandas import pandas as pd #Define data dictionary cand_dict = {'office_id' : [ 'ny', 2,3], 'city': ['nyc', 'boston', 'austin'], 'num_candidates': [10,20,58]} #Initialize DataFrame candidates = pd.DataFrame(cand_dict)_Mari cari tahu masing-masing tipe data dari kolom DataFrame kita
candidates.dtypesHasilnya akan
office_id object city object num_candidates int64 dtype: object_Kolom office_id menyertakan bilangan bulat numerik dan karakter teks, karenanya diberi tipe data objek
Mengonversi kolom DataFrame menjadi string
Mari kita asumsikan bahwa kita ingin menggabungkan office_id dan kolom kota
candidates['city_id'] = candidates['office_id'] + '_'+ candidates['city']Ini akan membuat kesalahan Jenis, karena kami mencoba menggabungkan bilangan bulat dan string
TypeError: unsupported operand type(s) for +: 'int' and 'str'_Mari kita lanjutkan dan ubah city_id menjadi tipe data string lalu gabungkan kolom dengan mudah
candidates['office_id'] = candidates['office_id'].astype('string') candidates['city_id'] = candidates['office_id'] + '_'+ candidates['city'] print(candidates.head())_Kami akan mendapatkan kolom city_id di DataFrame kami
Keluarkan objek DataFrame ke string
Kami menemukan sebelumnya bahwa bidang kota ditafsirkan sebagai objek Pandas. Kita dapat mentransmisikan setiap kolom ke tipe data tertentu dengan mengirimkan kamus pasangan kolom dan tipe yang cocok seperti yang disorot di bawah ini
candidates.astype({'city':'string', 'num_candidates':'int32'}).dtypesDan hasil yang akan kita dapatkan adalah
city string num_candidates int32 dtype. obyek
Ekspor Pandas Dataframe ke string menggunakan to_string()
Ini sebuah contoh
# Saving a DataFrame column print(candidates['city'].to_string()) #Entire DataFrame print(candidates.to_string())Ubah Datetime menjadi string
Dalam contoh kami berikutnya, kami akan menggunakan Python untuk mengubah kolom yang berisi objek tipe Datetime menjadi string
Kami pertama-tama akan menghasilkan beberapa DataFrame sederhana
import pandas as pd week = pd.date_range('2022-10-10', periods = 7, freq = 'd') sales = [120, 130, 150, 167, 180, 120, 150 ] sales_df = pd.DataFrame (dict(week = week, sales=sales)) sales_df.dtypesAkan kembali
week datetime64[ns] sales int64 dtype: objectSekarang kita dapat menggunakan metode astype seperti yang ditunjukkan di atas untuk mengembalikan sebuah seri
Perhatikan bahwa konversi ke string tidak akan diabadikan dalam DataFrame asli Anda. Anda dapat dengan mudah mempertahankan perubahan Anda dengan membuat DataFrame baru
candidates.dtypes1Ubah format Datetime dan konversikan ke string
Dalam contoh berikutnya kita hanya akan melanjutkan dan memodifikasi format kolom datetime menggunakan fomatter srftime. Dalam contoh ini kami akan menggunakan data yang telah kami hasilkan sebelumnya
candidates.dtypes2Kami akan mendapatkan hasil berikut
Dengan cara yang sama Anda dapat memodifikasi nilai datetime ke format lain, termasuk tahun, bulan, hari, jam, menit, dan sebagainya.
Contoh Mengganti nama kolom DataFrame
Persyaratan umum adalah mengganti nama kolom setelah dilemparkan ke tipe data baru. Berikut cuplikan singkat yang dapat Anda gunakan sebagai contoh
candidates.dtypes_3Mengubah kolom Pandas menjadi int
Beberapa pembaca telah bertanya tentang proses sederhana untuk mengonversi kolom yang berisi data numerik dari tipe string ke integer. Ingin mengarahkan Anda ke tutorial ini yang membantu memahami cara mentransmisikan kolom ke int di Pandas