Tôi có DataFrame chứa các số dưới dạng chuỗi với dấu phẩy cho điểm đánh dấu hàng nghìn. Tôi cần chuyển đổi chúng thành phao.
a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
Tôi đoán mình cần sử dụng locale.atof. Thật
df[0].apply(locale.atof)
hoạt động như mong đợi. Tôi nhận được một loạt phao.
Nhưng khi tôi áp dụng nó vào DataFrame, tôi gặp lỗi.
df.apply(locale.atof)
TypeError: ("không thể chuyển đổi chuỗi thành", không xuất hiện ở chỉ mục 0 ')
và
df[0:1].apply(locale.atof)
đưa ra một lỗi khác:
ValueError: ('ký tự không hợp lệ cho float (): 1.200', không xuất hiện ở chỉ mục 0 ')
Vì vậy, làm cách nào để chuyển đổi DataFramechuỗi này thành DataFrame của float?
applytrên DataFrame chuyển toàn bộ cột cho hàm dưới dạng một chuỗi (trong trường hợplocale.atofnày là một chuỗi). Nếu bạn sử dụngapplymapphương pháp mà @AndyHayden thực hiện trong câu trả lời bên dưới, bạn sẽ có thể thực hiện điều này tốt.