Mở rộng trên @Ryan G đã đề cập đến việc sử dụng pandas.DataFrame.astype(<type>)
phương thức, người ta có thể sử dụng errors=ignore
đối số để chỉ chuyển đổi các cột không tạo ra lỗi, điều này làm đơn giản hóa cú pháp. Rõ ràng, nên thận trọng khi bỏ qua lỗi, nhưng đối với nhiệm vụ này, nó rất tiện dụng.
>>> df = pd.DataFrame(np.random.rand(3, 4), columns=list('ABCD'))
>>> df *= 10
>>> print(df)
... A B C D
... 0 2.16861 8.34139 1.83434 6.91706
... 1 5.85938 9.71712 5.53371 4.26542
... 2 0.50112 4.06725 1.99795 4.75698
>>> df['E'] = list('XYZ')
>>> df.astype(int, errors='ignore')
>>> print(df)
... A B C D E
... 0 2 8 1 6 X
... 1 5 9 5 4 Y
... 2 0 4 1 4 Z
Từ tài liệu pandas.DataFrame.astype :
lỗi: {'nâng cao', 'bỏ qua'}, mặc định 'nâng cao'
Kiểm soát nâng cao các ngoại lệ trên dữ liệu không hợp lệ cho dtype được cung cấp.
- nâng cao: cho phép ngoại lệ được nêu ra
- bỏ qua: triệt tiêu các ngoại lệ. Khi lỗi trả về đối tượng ban đầu
Mới trong phiên bản 0.20.0.
df.col = df.col.astype(int)