我有两个pandas列,都转换为datetime格式,并且不能互相减去。
console.log(...)
可以进行减法的格式似乎是正确的,但随后出现此错误:
df['date_listed'] = pd.to_datetime(df['date_listed'], errors='coerce').dt.floor('d')
df['date_unconditional'] = pd.to_datetime(df['date_unconditional'], errors='coerce').dt.floor('d')
print df['date_listed'][:5]
print df['date_unconditional'][:5]
0 2013-01-01
1 2013-01-01
2 2015-04-08
3 2016-03-24
4 2016-04-27
Name: date_listed, dtype: datetime64[ns]
0 2018-10-15
1 2018-06-12
2 2018-08-28
3 2018-08-29
4 2018-10-29
Name: date_unconditional, dtype: datetime64[ns]
我添加了error ='coerce',认为它可以解决问题,但没有解决。我希望对此有所帮助。
答案 0 :(得分:0)
我认为您需要更改格式以与时间戳记区别。
例如:
fmt = '%Y-%m-%d'
date_listed = datetime.datetime.strptime('2013-01-01', fmt)
date_unconditional = datetime.datetime.strptime('2018-10-15', fmt)
print("{0} years, {1} months, {2} days" .format((b.year-a.year),(b.month-a.month),(b.day-a.day)))
o / p:
5 years, 0 months, 4 days
答案 1 :(得分:0)
如有必要,请更改第一列foir减去:
df['date_listed_to_sale'] = (df['date_unconditional'] - df['date_listed']).dt.days
或将第一列date_sold
转换为日期时间:
df['date_sold'] = pd.to_datetime(df['date_sold'], errors='coerce').dt.floor('d')
df['date_listed_to_sale'] = (df['date_sold'] - df['date_listed']).dt.days