Search code examples
pythonpandasdatetimesubtraction

Pandas - Python - how to subtract two different date columns


Trying to have a column be filled with today's date minus the created_date column, but getting the following error : TypeError: unsupported operand type(s) for -: 'str' and 'str'

import datetime
now = datetime.date.today()
today = '{0:%m/%d/%Y}'.format(now).format(now)
today
data['Aging'] = today
data['Aging'] = data['Aging'].sub(data['Created_Date'], axis=0)

TypeError: unsupported operand type(s) for -: 'str' and 'str'


Solution

  • I think need subtract datetimes, so is necessary convert date in now and in Created_Date column, last for convert timedeltas to days use dt.days:

    import datetime
    now = datetime.date.today()
    today = pd.Timestamp(now)
    
    data['Created_Date'] = pd.to_datetime(data['Created_Date'])
    data['Aging'] = today
    data['Aging'] = data['Aging'].sub(data['Created_Date'], axis=0).dt.days
    

    Solution should be simplify:

    data['Created_Date'] = pd.to_datetime(data['Created_Date'])
    data['Aging'] = data['Created_Date'].rsub(today, axis=0).dt.days