Years between two date column = 'Timedelta' object has no attribute 'item'

前端 未结 1 1858
礼貌的吻别
礼貌的吻别 2021-01-14 07:06

Afternoon All,

Looking for the number of years between two dates to 4 decimal places. My Data:

df_Years = df[
               


        
相关标签:
1条回答
  • 2021-01-14 07:37

    I think you need sub for subtract, convert timedeltas to days by dt.days, divide by div and last round:

    df_Years['Year_To_Maturity'] = (df_Years['maturity_date'].sub(df_Years['Today'])
                                                             .dt.days
                                                             .div(365)
                                                             .round(4))
    print (df_Years)
      maturity_date      Today  Year_To_Maturity
    0    2022-12-15 2018-03-21            4.7397
    1    2028-02-15 2018-03-21            9.9123
    2    2045-12-01 2018-03-21           27.7178
    3    2025-08-18 2018-03-21            7.4164
    4    2019-01-16 2018-03-21            0.8247
    5    2018-12-21 2018-03-21            0.7534
    

    Thanks @pir for better solution:

    df_Years['Year_To_Maturity'] = (df_Years['maturity_date'].sub(df_Years['Today'])
                                                             .dt.days
                                                             .div(365.25)
                                                             .round(4))
    print (df_Years)
      maturity_date      Today  Year_To_Maturity
    0    2022-12-15 2018-03-21            4.7365
    1    2028-02-15 2018-03-21            9.9055
    2    2045-12-01 2018-03-21           27.6988
    3    2025-08-18 2018-03-21            7.4114
    4    2019-01-16 2018-03-21            0.8241
    5    2018-12-21 2018-03-21            0.7529
    
    0 讨论(0)
提交回复
热议问题