gpt4 book ai didi

Python Date 两个日期之间的中间值

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:04 25 4
gpt4 key购买 nike

我有一个如下所示的 DataFrame:

raw_data = {'Series_Date':['2017-03-10','2017-03-13','2017-03-14','2017-03-15'],'SeriesDate':['2017-03-10','2017-03-13','2017-03-14','2017-03-15']}
import pandas as pd
df = pd.DataFrame(raw_data,columns=['Series_Date','SeriesDate'])
print df

对于此 DF,我想在末尾附加四列:

1) Start_Date = SeriesDate - 10 个工作日

2) End_Date = SeriesDate - 3 个工作日

3) 日期差异 = (结束日期 - 开始日期)/2。但是,如果日期差异为 4.5 天,则该值应为 5 而不是 4,即应向上舍入。

4) Roll_Date = End_Date - “Date_Difference”工作日。即,如果 Date_Difference 为 5,则 Roll_Date = End_Date - 5 个工作日

我可以按如下方式附加前两列:

from pandas.tseries.offsets import BDay
df['Start_Date'] = df['SeriesDate'] - BDay(10)
df['End_Date'] = df['SeriesDate'] - BDay(3)

但是,我在最后两列中遇到了困难。有人可以提供一些帮助吗?

最佳答案

一旦你有了这个df:

  Series_Date Start_Date   End_Date
0 2017-03-10 2017-02-24 2017-03-07
1 2017-03-13 2017-02-27 2017-03-08
2 2017-03-14 2017-02-28 2017-03-09
3 2017-03-15 2017-03-01 2017-03-10

您可以填写 2 列:

df['Date_Difference'] = ((df.End_Date - df.Start_Date) / 2).dt.ceil('D')
df['Roll_Date'] = df.End_Date - pd.Series(BDay(dd.days) for dd in df.Date_Difference)

说明:

(df.End_Date - df.Start_Date)/2) 给出一系列时间增量。 .dt.ceil('D') 将此系列四舍五入到当天。

pd.Series(BDay(dd.days) for dd in df.Date_Difference) 根据 Date_Difference 中的天数创建一系列 BusinessDays。 (很可能有更好的方法来做到这一点,但我是 Pandas 的新手)。

附带问题:为什么有 2 列 Series_DateSeriesDate 内容相同?

关于Python Date 两个日期之间的中间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43229957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com