<p>让<code>s</code>成为<code>pd.Series</code>类似日期的刺的样本</p>
<pre><code>dates = pd.date_range('2016-01-01', '2016-12-31')
s = pd.Series(np.sort(np.random.choice(dates, 10))).dt.strftime('%Y-%m-%d')
s
0 2016-01-08
1 2016-01-13
2 2016-02-08
3 2016-03-31
4 2016-04-02
5 2016-04-16
6 2016-06-07
7 2016-06-14
8 2016-10-13
9 2016-12-20
dtype: object
</code></pre>
<hr/>
<p>您可以使用<code>pd.offsets</code>添加3个月</p>
<pre><code>pd.to_datetime(s) + pd.offsets.DateOffset(months=3)
0 2016-04-08
1 2016-04-13
2 2016-05-08
3 2016-06-30
4 2016-07-02
5 2016-07-16
6 2016-09-07
7 2016-09-14
8 2017-01-13
9 2017-03-20
dtype: datetime64[ns]
</code></pre>
<hr/>
<p>你可以把它们变回弦</p>
<pre><code>(pd.to_datetime(s) + pd.offsets.DateOffset(months=3)).dt.strftime('%Y-%m-%d')
0 2016-04-08
1 2016-04-13
2 2016-05-08
3 2016-06-30
4 2016-07-02
5 2016-07-16
6 2016-09-07
7 2016-09-14
8 2017-01-13
9 2017-03-20
dtype: object
</code></pre>
<hr/>
<p>我们可以把它粉碎在一起,看看一切都解决了</p>
<pre><code>xs_start = pd.to_datetime(s)
offset = pd.offsets.DateOffset(months=3)
xs_graph = xs_start + offset
check = pd.DataFrame(dict(
excessmove_start=xs_start,
excess_graph=xs_graph,
delta=xs_graph - xs_start
))
check
delta excess_graph excessmove_start
0 91 days 2016-04-08 2016-01-08
1 91 days 2016-04-13 2016-01-13
2 90 days 2016-05-08 2016-02-08
3 91 days 2016-06-30 2016-03-31
4 91 days 2016-07-02 2016-04-02
5 91 days 2016-07-16 2016-04-16
6 92 days 2016-09-07 2016-06-07
7 92 days 2016-09-14 2016-06-14
8 92 days 2017-01-13 2016-10-13
9 90 days 2017-03-20 2016-12-20
</code></pre>