2024-10-02 16:28:06 发布
网友
我有:
excessmove_start = '2015-1-6'
我想要一个名为excess_graph的新变量,它总是比excessmove_start提前3个月。你知道吗
excess_graph
excessmove_start
因此,在本例中,我的预期输出是:
excess_graph = '2015-4-6'
让s成为pd.Series类似日期的刺的样本
s
pd.Series
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
您可以使用pd.offsets添加3个月
pd.offsets
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]
你可以把它们变回弦
(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
我们可以把它粉碎在一起,看看一切都解决了
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
这将完成以下工作:
from datetime import datetime from dateutil.relativedelta import relativedelta excessmove_start = '2015-1-6' s = datetime.strptime(excessmove_start, "%Y-%m-%d") excess_graph= s+ relativedelta(months=+3) print(excess_graph.strftime("%Y-%m-%d"))
这个指纹
2015-04-06
使用relativedelta:
import dateutil excessmove_start = date(2015,1,6) excess_graph = excessmove_start + datetime.relativedelta.relativedelta(months=3))
让
s
成为pd.Series
类似日期的刺的样本您可以使用
pd.offsets
添加3个月你可以把它们变回弦
我们可以把它粉碎在一起,看看一切都解决了
这将完成以下工作:
这个指纹
使用relativedelta:
相关问题 更多 >
编程相关推荐