title: pandas shift converts my column from integer to float.
body: <p><code>shift</code> converts my column from integer to float. It turns out that <code>np.nan</code> is float only. Is there any ways to keep shifted column as integer?</p>
  
  <pre><code>df = pd.DataFrame({"a":range(5)})
  df['b'] = df['a'].shift(1)
  
  df['a']
  # 0    0
  # 1    1
  # 2    2
  # 3    3
  # 4    4
  # Name: a, dtype: int64
  
  df['b']
  
  # 0   NaN
  # 1     0
  # 2     1
  # 3     2
  # 4     3
  # Name: b, dtype: float64
  </code></pre>