Series.shift and DataFrame.shift do not preserve dtype
shift() method converts int32 to float64, and you need an extra step to convert it back

``` py
s = Series(range(100), dtype=np.int32)
print s.dtype, s.shift(1).dtype
```

Version 0.14

The documentation says otherwise:
Returns :   shifted : same type as caller
