If you do dff.b = Int8.(dff.b)
instead, I think it will work. The difference must be that this is overwriting the entire column (which changes the type), but you were just overwriting the values with dff[:,:b]=Int8.(dff[:,:b])
, which left the type as is.
Anyway, let me know if it works.