Python Timedelta64 将天转换为月

bet*_*eta 9 python timedelta python-datetime

我有一个 Pandas 数据框,其中有 2 列代表开始时间戳和结束时间戳:

start       end
2016-06-13  2016-07-20
Run Code Online (Sandbox Code Playgroud)

这些列的数据类型是datetime64[ns].

我现在想创建一个新列,显示月份的差异:

start       end         duration
2016-06-13  2016-07-20  1.1
Run Code Online (Sandbox Code Playgroud)

我尝试的是执行以下操作:

df['duration'] = df['end'] - df['start']
Run Code Online (Sandbox Code Playgroud)

结果如下:

start       end         duration
2016-06-13  2016-07-20  37 days 00:00:00.000000000
Run Code Online (Sandbox Code Playgroud)

然后我尝试执行以下操作:

df['duration'] = df['end'] - df['start']).dt.months
Run Code Online (Sandbox Code Playgroud)

但这会产生以下错误

AttributeError:“TimedeltaProperties”对象没有属性“months”

duration该列的数据类型是timedelta64[ns].

我怎样才能达到预期的结果?

gpr*_*gpr 11

import numpy as np #version: 1.16.2
import pandas as pd #version: 0.25.1

df['duration'] = (df['end'] - df['start'])/np.timedelta64(1, 'M')
Run Code Online (Sandbox Code Playgroud)