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 DataFrame
chuỗi này thành DataFrame của float?
apply
trê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.atof
này là một chuỗi). Nếu bạn sử dụngapplymap
phươ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.