I have a list of dates and I want to get a difference from a defined one(I mean days) and append days calculated in a new column
JavaScript
x
14
14
1
from datetime import date, datetime
2
import pandas as pd
3
4
df = pd.read_csv("date.csv", parse_dates = ["dates"])
5
6
#a date to substact dates in csv
7
defined_date = date(2020,12,25)
8
9
#a list of dates from a csv file
10
csv_dates = df.dates
11
12
diff = [defined_date - csv_dates]
13
print(diff)
14
I get TypeError: unsupported operand type(s) for -: 'DatetimeArray' and 'datetime.date'
Now how can I read the dates in csv file in the same format as the defined date is there a way to do so
JavaScript
1
3
1
#How to change a list of dates from a csv file to date datatype
2
csv_dates = df.dates
3
Advertisement
Answer
It is happening because you are trying to subtract array(series) from defined_date
. Which doesn’t work like that. You need to iterate over your csv_dates
series and add differences to the new column.
JavaScript
1
6
1
dates_diff = []
2
for d in csv_dates:
3
dates_diff.append(d.date() - defined_date)
4
5
df['diff'] = dates_diff
6