【发布时间】:2019-03-29 15:21:33
【问题描述】:
我需要在单独的函数中从 pandas 框架值转换日期:
def myfunc(lat, lon, when):
ts = (when - np.datetime64('1970-01-01T00:00:00Z','s')) / np.timedelta64(1, 's')
date = datetime.datetime.utcfromtimestamp(ts)
print("Numpy date= ", when, " Python date= ", date)
return float(90) - next_func(lat, lon, date)
调用这个函数:
new_df['new_column'] = np.vectorize(my_func)(lat, lon, new_df['datetime(LT)'])
但它会引发错误:
ufunc subtract cannot use operands with types dtype('int64') and dtype('<M8[s]')
如何将 numpy datetime64 [ns] 转换为 python datetime?
【问题讨论】:
-
欢迎来到地狱!提出这个概念的人应该受到鞭笞的招待 ;) .... 你使用的是哪个 pandas / numpy 版本?行为会随着不同的 numpy 版本而变化,以获得额外的乐趣
-
np.datetime64('1970-01-01','s').item()返回datetime.datetime(1970, 1, 1, 0, 0)。 'ns' 返回一个整数,但 'us' 和更大的会产生datetime。 -
@ChristianSauer NumPy 是 1.15.3 而 Pandas 是 0.23.4