When transposing, it is a possibility that the now transposed rows (as columns) may not be of the same type, or of the same rounding. Pandas tries to remedy this (if possible, from a performance point of view), and so the rounding is reset. If you want to preserve the rounding, convert the dataframe to object type, and then transpose -

Now, pandas makes no assumptions about object columns, and they are transposed as-is, without any attempt at transforming the data. Keep in mind that data as objects is suicidal in terms of performance, you might as well use python lists at this point, as objects do not offer any performance benefits.