Liên kết màn hình
Mã của tôi
laptops.rename[{"weight":"weight_kg"},axis=1,inplace=True]
laptops["weight_kg"]=laptops["weight_kg"].str.replace["kg",""].str.replace["kgs",""].astype[float]
laptops.to_csv['laptops_cleaned.csv',index=False]
Điều tôi mong đợi sẽ xảy ra.
Mã của tôi gần giống với câu trả lời được viết cho thử thách này, ngoại trừ việc tôi đã thay đổi tên của cột trước và cố gắng thay đổi kiểu dữ liệu của cột.
Điều gì đã thực sự xảy ra.
Vì mã giống hệt với câu trả lời, đặc biệt là dòng thứ hai nơi loại dữ liệu cho trọng lượng cột đang được chuyển đổi, tôi mong đợi nó sẽ chuyển đổi suôn sẻ thành float từ chuỗi.
ValueErrorTraceback [most recent call last]
in []
1 laptops.rename[{"weight":"weight_kg"},axis=1,inplace=True]
----> 2 laptops["weight_kg"]=laptops["weight_kg"].str.replace["kg",""].str.replace["kgs",""].astype[float]
3 laptops.to_csv['laptops_cleaned.csv',index=False]
ValueError: could not convert string to float: '4s'
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].
Tệp “”, dòng 1, trong
Tệp “/Applications/PyCharm CE. ứng dụng/Nội dung/plugin/python-ce/helpers/pydev/_pydev_bundle/pydev_umd. py”, dòng 197, trong tệp thực thi
pydev_imports. execfile[filename, global_vars, local_vars] # thực thi tập lệnh
Tệp “/Applications/PyCharm CE. ứng dụng/Nội dung/plugin/python-ce/helpers/pydev/_pydev_imps/_pydev_execfile. py”, dòng 18, trong execfile
exec[compile[contents+"\n", file, 'exec'], glob, loc]
File “/ . py”, dòng 23, trong
train_data, validation_data, test_data = object_detector. Trình tải dữ liệu. from_csv[‘dữ liệu. csv’]
Tệp “/Users/maryam/PycharmProjects/sp/venv/lib/python3. 8/site-gói/tensorflow_examples/lite/model_maker/core/data_util/object_detector_dataloader. py”, dòng 292, trong from_csv
cache_writer. write_files[cache_files, csv_lines=csv_lines]
Tệp “/Users/maryam/PycharmProjects/sp/venv/lib/python3. 8/site-gói/tensorflow_examples/lite/model_maker/core/data_util/object_detector_dataloader_util. py”, dòng 247, trong write_files
cho idx, xml_dict trong liệt kê[self. _get_xml_dict[*args, **kwargs]].
Tệp “/Users/maryam/PycharmProjects/sp/venv/lib/python3. 8/site-gói/tensorflow_examples/lite/model_maker/core/data_util/object_detector_dataloader_util. py”, dòng 380, trong _get_xml_dict
xml_dict = _get_xml_dict_from_csv_lines[self. images_dir, image_filename,
Tệp “/Users/maryam/PycharmProjects/sp/venv/lib/python3. 8/site-gói/tensorflow_examples/lite/model_maker/core/data_util/object_detector_dataloader_util. py”, dòng 337, trong _get_xml_dict_from_csv_lines
xmin, ymin = float[line[3]] * width, float[line[4]] * height
ValueError. không thể chuyển đổi chuỗi thành float. ‘’
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- không gian
- dấu phẩy
- Ký tự đặc biệt
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ỗi
Giả 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ỗi
Cá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
Tại sao tôi không thể chuyển đổi chuỗi thành dấu phẩy trong Python?
Làm cách nào để chuyển đổi chuỗi chuỗi thành float trong Python?
Làm cách nào để chuyển đổi chuỗi thành float trong học máy?
Bạn có thể chuyển đổi chuỗi thành int hoặc float không?