<p dir="auto">Hello,</p>
<p dir="auto"><code class="notranslate">interpolate</code> doesn't work with <code class="notranslate">NaT</code><br>
see <a href="http://stackoverflow.com/questions/33921795/fill-timestamp-nat-with-a-linear-interpolation/33922824#33922824" rel="nofollow">http://stackoverflow.com/questions/33921795/fill-timestamp-nat-with-a-linear-interpolation/33922824#33922824</a></p>
<p dir="auto">Here is a trivial example to show the situation:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="s = pd.Series(pd.date_range('2015-01-01' , '2015-01-30'), name='t')

s[3], s[4], s[5] = pd.NaT, pd.NaT, pd.NaT
s[13], s[14], s[15] = pd.NaT, pd.NaT, pd.NaT
print(s)

0    2015-01-01
1    2015-01-02
2    2015-01-03
3           NaT
4           NaT
5           NaT
6    2015-01-07
7    2015-01-08
8    2015-01-09
9    2015-01-10
10   2015-01-11
11   2015-01-12
12   2015-01-13
13          NaT
14          NaT
15          NaT
16   2015-01-17
17   2015-01-18
18   2015-01-19
19   2015-01-20
20   2015-01-21
21   2015-01-22
22   2015-01-23
23   2015-01-24
24   2015-01-25
25   2015-01-26
26   2015-01-27
27   2015-01-28
28   2015-01-29
29   2015-01-30
Name: t, dtype: datetime64[ns]

print(s.interpolate())
0    2015-01-01
1    2015-01-02
2    2015-01-03
3           NaT
4           NaT
5           NaT
6    2015-01-07
7    2015-01-08
8    2015-01-09
9    2015-01-10
10   2015-01-11
11   2015-01-12
12   2015-01-13
13          NaT
14          NaT
15          NaT
16   2015-01-17
17   2015-01-18
18   2015-01-19
19   2015-01-20
20   2015-01-21
21   2015-01-22
22   2015-01-23
23   2015-01-24
24   2015-01-25
25   2015-01-26
26   2015-01-27
27   2015-01-28
28   2015-01-29
29   2015-01-30
Name: t, dtype: datetime64[ns]

assert s.interpolate().isnull().sum() == 0
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
&lt;ipython-input-150-8a59e397a174&gt; in &lt;module&gt;()
----&gt; 1 assert s.interpolate().isnull().sum() == 0

AssertionError:"><pre class="notranslate"><code class="notranslate">s = pd.Series(pd.date_range('2015-01-01' , '2015-01-30'), name='t')

s[3], s[4], s[5] = pd.NaT, pd.NaT, pd.NaT
s[13], s[14], s[15] = pd.NaT, pd.NaT, pd.NaT
print(s)

0    2015-01-01
1    2015-01-02
2    2015-01-03
3           NaT
4           NaT
5           NaT
6    2015-01-07
7    2015-01-08
8    2015-01-09
9    2015-01-10
10   2015-01-11
11   2015-01-12
12   2015-01-13
13          NaT
14          NaT
15          NaT
16   2015-01-17
17   2015-01-18
18   2015-01-19
19   2015-01-20
20   2015-01-21
21   2015-01-22
22   2015-01-23
23   2015-01-24
24   2015-01-25
25   2015-01-26
26   2015-01-27
27   2015-01-28
28   2015-01-29
29   2015-01-30
Name: t, dtype: datetime64[ns]

print(s.interpolate())
0    2015-01-01
1    2015-01-02
2    2015-01-03
3           NaT
4           NaT
5           NaT
6    2015-01-07
7    2015-01-08
8    2015-01-09
9    2015-01-10
10   2015-01-11
11   2015-01-12
12   2015-01-13
13          NaT
14          NaT
15          NaT
16   2015-01-17
17   2015-01-18
18   2015-01-19
19   2015-01-20
20   2015-01-21
21   2015-01-22
22   2015-01-23
23   2015-01-24
24   2015-01-25
25   2015-01-26
26   2015-01-27
27   2015-01-28
28   2015-01-29
29   2015-01-30
Name: t, dtype: datetime64[ns]

assert s.interpolate().isnull().sum() == 0
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
&lt;ipython-input-150-8a59e397a174&gt; in &lt;module&gt;()
----&gt; 1 assert s.interpolate().isnull().sum() == 0

AssertionError:
</code></pre></div>
<p dir="auto">Kind regards</p>
<p dir="auto">I didn't directly found an open issue about it, but is there a reason we do not implement interpolation of datetime <em>values</em> (so not in the index)?</p>
<p dir="auto">Example:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [14]: s = pd.Series(pd.date_range('2012-01-01', periods=5))

In [16]: s[2] = np.nan

In [17]: s
Out[17]:
0   2012-01-01
1   2012-01-02
2          NaT
3   2012-01-04
4   2012-01-05
dtype: datetime64[ns]

In [18]: s.interpolate()
Out[18]:
0   2012-01-01
1   2012-01-02
2          NaT
3   2012-01-04
4   2012-01-05
dtype: datetime64[ns]"><pre class="notranslate"><code class="notranslate">In [14]: s = pd.Series(pd.date_range('2012-01-01', periods=5))

In [16]: s[2] = np.nan

In [17]: s
Out[17]:
0   2012-01-01
1   2012-01-02
2          NaT
3   2012-01-04
4   2012-01-05
dtype: datetime64[ns]

In [18]: s.interpolate()
Out[18]:
0   2012-01-01
1   2012-01-02
2          NaT
3   2012-01-04
4   2012-01-05
dtype: datetime64[ns]
</code></pre></div>
<p dir="auto">A crude manual work around:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [20]: s2 = pd.Series(s.values.astype('int64'))

In [21]: s2[s2&lt;0] = np.nan

In [22]: s2
Out[22]:
0    1.325376e+18
1    1.325462e+18
2             NaN
3    1.325635e+18
4    1.325722e+18
dtype: float64

In [23]: pd.to_datetime(s2.interpolate(), unit='ns')
Out[23]:
0   2012-01-01
1   2012-01-02
2   2012-01-03
3   2012-01-04
4   2012-01-05
dtype: datetime64[ns]"><pre class="notranslate"><code class="notranslate">In [20]: s2 = pd.Series(s.values.astype('int64'))

In [21]: s2[s2&lt;0] = np.nan

In [22]: s2
Out[22]:
0    1.325376e+18
1    1.325462e+18
2             NaN
3    1.325635e+18
4    1.325722e+18
dtype: float64

In [23]: pd.to_datetime(s2.interpolate(), unit='ns')
Out[23]:
0   2012-01-01
1   2012-01-02
2   2012-01-03
3   2012-01-04
4   2012-01-05
dtype: datetime64[ns]
</code></pre></div>