Vấn đề là object
dtype gây hiểu lầm. Tôi nghĩ rằng nó có nghĩa là tất cả các mục là chuỗi. Nhưng dường như, trong khi đọc tệp, gấu trúc đang chuyển đổi một số phần tử thành int và để phần còn lại dưới dạng chuỗi.
Giải pháp là đảm bảo rằng mọi trường đều là một chuỗi:
>>> df1.col1 = df1.col1.astype(str)
>>> df2.col2 = df2.col2.astype(str)
Sau đó, hợp nhất hoạt động như mong đợi.
(Tôi ước gì có cách chỉ định dtype
trong tổng số str
...)