PythonPandas:两次约会在几周内的差异?

2024-09-28 17:22:52 发布

您现在位置:Python中文网/ 问答频道 /正文

当试图在几周内找出两次约会之间的差异时:

import pandas as pd

def diff(start, end):
    x = millis(end) - millis(start)
    return x / (1000 * 60 * 60 * 24 * 7 * 1000)

def millis(s):
    return pd.to_datetime(s).to_datetime64()

diff("2013-06-10","2013-06-16")

结果我得到:

^{pr2}$

这显然是错误的。问题:

  1. 如何将差值舍入到一个整数值,而不是纳秒?

  2. 如何从中获取价值numpy.timedelta64'对象?


Tags: toimportpandasdatetimereturndefasdiff
3条回答

耶兹雷尔的回答给我带来了一个错误,所以这里有一个替代的解决方案(以防你在尝试时也遇到了错误)

def diff(start, end):
    x = pd.to_datetime(end) - pd.to_datetime(start)
    return (x).apply(lambda x: x/np.timedelta64(1,'W')).astype(int)

我想你可以通过除以numpy标量来转换成int

def diff(start, end):
    x = pd.to_datetime(end) - pd.to_datetime(start)
    return int(x / np.timedelta64(1, 'W'))

print (diff("2013-06-10","2013-06-16"))
0
print (diff("2013-06-10","2013-06-26"))
2

frequency conversion。在

这里有一个简单的解决方法:

def diff(start, end):
    x = millis(end) - millis(start)
    return np.ceil(x.astype(int) / (7*86400*1e9))

最主要的是在操作之前移除这些单元(纳秒)。在

注意:当函数不返回毫秒时,考虑不调用函数millis()。在

相关问题 更多 >