title: Interpolate NaN values over a DataFrame as a ring
body: <p>I need to interpolate the <code>NaN</code> values over a <code>Dataframe</code> but I want that interpolation to get the first values of the <code>DataFrame</code> in case the <code>NaN</code> value is the last value. Here is an example:</p>
  
  <pre><code>import pandas as pd
  import numpy as np
  df = pd.DataFrame.from_dict({"a": [1,2,3], "b":[1,2,np.nan]})
  </code></pre>
  
  <p>So the DataFrame is:</p>
  
  <pre><code>   a    b
  0  1  1.0
  1  2  2.0
  2  3  NaN
  </code></pre>
  
  <p>But when I interpolate the nan values like:</p>
  
  <pre><code>df.interpolate(method="linear", inplace=True)
  </code></pre>
  
  <p>I got:</p>
  
  <pre><code>   a    b
  0  1  1.0
  1  2  2.0
  2  3  2.0
  </code></pre>
  
  <p>The interpolation doesn't use the first value to do it. My desired output wold be to fill in with the value of 1.5 because of that circular interpolation.</p>