Không thể chuyển đổi chuỗi thành float Python csv
Liên kết màn hình Show Mã của tôi
Điều tôi mong đợi sẽ xảy ra. Điều gì đã thực sự xảy ra. Tôi đang cố gắng tạo tập dữ liệu tùy chỉnh của riêng mình để đào tạo mô hìnhefficiencydet_lite3, nhưng khi tôi chạy mã này (Tệp csv dữ liệu có cùng định dạng với định dạng được chỉ định trên liên kết này TensorFlow Lite Model Maker를 사용한 객체 감지) train_data, validation_data, test_data = object_detector. Trình tải dữ liệu. from_csv(‘dữ liệu. csv') Lỗi mà tôi nhận được từ đoạn mã trên Traceback (cuộc gọi gần đây nhất gần đây nhất). Có một câu trả lời có thể cho vấn đề này? Cảm ơn bạn Lỗi này thường xảy ra khi bạn cố gắng chuyển đổi một chuỗi thành float trong pandas, nhưng chuỗi đó chứa một hoặc nhiều nội dung sau
Khi điều này xảy ra, trước tiên bạn phải xóa các ký tự này khỏi chuỗi trước khi chuyển đổi thành dấu phẩy Ví dụ sau đây cho thấy cách giải quyết lỗi này trong thực tế Cách tạo lại lỗiGiả sử chúng ta có DataFrame gấu trúc sau 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 Bây giờ, giả sử chúng tôi cố gắng chuyển đổi cột doanh thu từ một chuỗi thành một số float #attempt to convert 'revenue' from string to float
df['revenue'] = df['revenue'].astype(float)
ValueError: could not convert string to float: '$400.42'
Chúng tôi gặp lỗi do cột doanh thu chứa ký hiệu đô la trong chuỗi Cách khắc phục lỗiCách xử lý lỗi này là sử dụng hàm replace() để thay thế các ký hiệu đô la trong cột doanh thu bằng không trước khi thực hiện chuyển đổi #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: object Lưu ý rằng chúng tôi có thể chuyển đổi cột doanh thu từ một chuỗi thành một số float và chúng tôi không nhận được bất kỳ lỗi nào vì chúng tôi đã xóa các ký hiệu đô la trước khi thực hiện chuyển đổi
|