我有一个Pandas数据框,其中有2列,分别代表开始时间戳和结束时间戳:
start end
2016-06-13 2016-07-20
这些列的数据类型是datetime64[ns]
。
我现在想创建一个新列以显示月份差异:
start end duration
2016-06-13 2016-07-20 1.1
我尝试做以下事情:
df['duration'] = df['end'] - df['start']
结果看起来像这样:
start end duration
2016-06-13 2016-07-20 37 days 00:00:00.000000000
然后我尝试执行以下操作:
df['duration'] = df['end'] - df['start']).dt.months
但是这会产生以下错误
AttributeError:“ TimedeltaProperties”对象没有属性“ months”
duration
列的数据类型是timedelta64[ns]
。
如何获得所需的结果?
import numpy as np
import pandas as pd
from datetime import datetime, date
df['duration'] = (df['end'] - df['start'])/np.timedelta64(1, 'M')