【问题标题】:How to create a new column of dates by adding a corresponding column of days to today's date using PANDAS如何通过使用 PANDAS 将相应的天数列添加到今天的日期来创建新的日期列
【发布时间】:2018-09-25 17:24:57
【问题描述】:

我的数据框df 的最后一列看起来像:

    ...   Days till Service
0   ...                   0
1   ...                  28
2   ...                   7
3   ...                  54
4   ...                   0
5   ...                   6
6   ...                  28
7   ...                   0
8   ...                  16
9   ...                 200

问题:

我想创建一个名为Predicted Service Date 的新列,我可以在其中将Days till Service 添加到今天的日期。我该怎么做?

理想输出:

如果今天的日期是16/04/2018,那么df 应该如下所示:

    ...   Days till Service   Predicted Service Date
0   ...                   0               16/04/2018
1   ...                  28               14/05/2018
2   ...                   7               23/04/2018
3   ...                  54               09/06/2018
4   ...                   0               16/04/2018
5   ...                   6               22/04/2018
6   ...                 365               16/04/2019
7   ...                   0               16/04/2018
8   ...                  16               02/05/2018
9   ...                 200               02/11/2018

【问题讨论】:

    标签: pandas datetime


    【解决方案1】:

    您要做的是定义日期偏移量,然后将其添加到 DateTime。 Pandas 也接受datetime()Timestamp,因此请随意使用。

    您可以使用Day 定义offsets,首先将您的偏移系列转换为Day 偏移类,然后添加任何起点的日期时间。

    from pandas.tseries.offsets import Day
    from datetime import datetime
    df['Predicted Service Date'] = df['Days till Service'].apply(Day) + datetime(2018, 4, 17) #Or What everdate you would like
    

    【讨论】:

    • 解释您的答案,以便其他人将来可以从中受益。
    • 我简单解释了,欢迎编辑或反馈:)
    【解决方案2】:

    使用pd.to_timedelta,您可以将df['Days till Service'] 转换为时间增量,然后将它们添加到今天的日期:

    df['Predicted Service Date'] = \
        pd.to_datetime('today') + pd.to_timedelta(df['Days till Service'], unit='D')
    

    【讨论】:

    • 错字 - timedetas 应该是 timedeltas
    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多