如何在Pandas中计算以月为单位的Timedelta
两个日期或时间之间的差异被表示为一个timedelta对象。持续时间描述了两个日期、日期时间或时间发生的差异,而delta意味着差异的平均值。人们可以通过使用timedelta来估计未来和过去的时间。这种两个日期之间的差异如果以月为单位计算,就叫做以月为单位的时间三角洲。让我们来演示一下在pandas中计算月的时间差的几种方法。
方法1:使用pandas.Series.dt.to_period()函数计算Timedelta
pandas.Series.dt.to_period() 函数:
语法:
Series.dt.to_period(*args, kwargs)
将日期时间数组转换为周期数组。
参数 :
freq= 可选值,偏移字符串或偏移对象
在这个例子中,我们读取time.csv,并将每一列的值转换为DateTime。在将各列转换为DateTime后,我们使用pandas.Series.dt.to_period()来计算以月为单位的时间差。to_period()函数中的’M’字符串象征着月份。月末对象被返回。
使用的CSV:
输出:
方法2:使用整数的月份计算Temedelta
在前面的方法中,Monthends对象被返回。如果我们想让它变成整数,我们必须使用astype()函数或者使用view(dtype=’int64′)来转换。
输出:
例子2:使用.view(dtype=’int64′)转换为整数。
输出:
方法3:使用用户定义的函数计算Timedelta
我们可以不使用内置函数,而是使用自己的用户定义函数pd.Timestamp()函数将DateTIME-like、str、int或float时间对象转换为时间戳。然后我们从时间戳中提取年和月的值。由于每年有12个月,我们用12乘以年差,再加上月差。
输出: