Let s
eine Probe pd.Series
von Stichen, die wie Daten aussehen
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
Sie pd.offsets
3 Monate hinzufügen können
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]
Sie sie zurück drehen kann Zeichenketten
(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
Wir können es zerschlagen alle zusammen, um zu sehen, dass sie alle aus arbeitet
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
Dieser Link eine sehr ähnliche Frage stellt, können Sie helfen https://stackoverflow.com/questions/9594282/ how-do-you-add-3-Monate-zu-einem-Datum-Datum-Objekt-in-Python – Jake