Python 的 pandas 中是否有与 SQL 的 datediff 函数等效的函数?
这个问题的答案:在 DataFrame pandas 中添加包含日期之间天数的列解释如何计算天数差异。例如:
>>> (pd.to_datetime('15-10-2010') - pd.to_datetime('15-07-2010')) / pd.offsets.Day(1)
92.0
不过,我有两个问题:
- 有没有办法计算月份的差异?我可以将上面的结果近似除以 30、31,但我想知道是否有一些内置函数可以自动执行此操作。
- pd.offsets 的语法是什么?我尝试除以 pd.offsets.Month(1) 但它不起作用。我在这里查找了文档(这太糟糕了,就像所有 Python 的文档一样!):http://pandas.pydata.org/pandas-docs/stable/timeseries.html#dateoffset-objects但 Day() 不存在,所以我很困惑
UPDATE:
def months_between(d1, d2):
dd1 = min(d1, d2)
dd2 = max(d1, d2)
return (dd2.year - dd1.year)*12 + dd2.month - dd1.month
In [125]: months_between(pd.to_datetime('2015-01-02 12:13:14'), pd.to_datetime('2012-03-02 12:13:14'))
Out[125]: 34
旧答案:
In [40]: (pd.to_datetime('15-10-2010') - pd.to_datetime('15-07-2010')).days
Out[40]: 92
你也可以这样做几个月:
In [48]: pd.to_datetime('15-10-2010').month - pd.to_datetime('15-07-2010').month
Out[48]: 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)