Python Timedelta64将天转换成几个月

问题描述 投票:2回答:1

我有一个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]

如何获得所需的结果?

python timedelta python-datetime
1个回答
0
投票
import numpy as np
import pandas as pd
from datetime import datetime, date

df['duration'] = (df['end'] - df['start'])/np.timedelta64(1, 'M')
© www.soinside.com 2019 - 2024. All rights reserved.