can I make pandas convert dtypes before doing dataframe operations?

Solution 1:

Try:

new=new.astype(dict(zip(new.columns, old.dtypes.astype(str).str.lower().values)))

Now if you print new.dtypes you will get:

one     int8
two    int16
dtype: object