我有一个numpy.ndarray
,其值为pandas._libs.tslib.Timestamp
示例:
在:type(closedDate)
出:numpy.ndarray
在:type(closedDate[0])
出:pandas._libs.tslib.Timestamp
我想将closedDate
的内容转换为datetime.date
我尝试了以下内容:
for i in closedDate:
closedDate[i].to_datetime()
但是得到这个错误:
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
怎么办? :/
答案 0 :(得分:0)
我希望numpy能够通过astype
提供这个功能,所以你甚至不必明确地循环遍历数组:
dt_arr = closedDate.astype(np.datetime64)
检查:
closedDate
Out:
array([Timestamp('2017-09-25 14:39:00'), Timestamp('2017-09-26 14:39:00'),
Timestamp('2017-09-27 14:39:00')], dtype=object)
type(closedDate)
Out: numpy.ndarray
type(closedDate[0])
Out: pandas._libs.tslib.Timestamp
type(dt_arr)
Out: numpy.ndarray
type(dt_arr[0])
Out: numpy.datetime64
答案 1 :(得分:0)
[x.to_pydatetime().date() for x in closedDate]
但是,请注意,您可能会犯一些错误,最终得到一个包含pandas数据类型的numpy数组。 pandas Series和DataFrames比numpy数组更适合处理特定于熊猫的类型。