【发布时间】:2018-07-08 18:54:27
【问题描述】:
我有一个 numpy 数组:
>>> type(dat)
Out[41]: numpy.ndarray
>>> dat.shape
Out[46]: (127L,)
>>> dat[0:3]
Out[42]: array([datetime.date(2010, 6, 11), datetime.date(2010, 6, 19), datetime.date(2010, 6, 30)], dtype=object)
我想获取此数组中每个日期的工作日,如下所示:
>>> dat[0].weekday()
Out[43]: 4
我尝试使用以下方法,但没有任何效果:
import pandas as pd
import numpy as np
import datetime as dt
np.apply_along_axis(weekday,0,dat)
NameError: name 'weekday' is not defined
np.apply_along_axis(dt.weekday,0,dat)
AttributeError: 'module' object has no attribute 'weekday'
np.apply_along_axis(pd.weekday,1,dat)
AttributeError: 'module' object has no attribute 'weekday'
np.apply_along_axis(lambda x: x.weekday(),0,dat)
AttributeError: 'numpy.ndarray' object has no attribute 'weekday'
np.apply_along_axis(lambda x: x.dt.weekday,0,dat)
AttributeError: 'numpy.ndarray' object has no attribute 'dt'
这里有什么我遗漏的吗?
【问题讨论】:
-
weekday是datetime.date对象的一个方法。apply_along_axis需要一个函数。只需使用列表理解进行计算。即使你可以让它工作,apply_along_axis也不会加快速度。
标签: python pandas numpy datetime weekday