将Numpy数组转换为datetime.date pandas DataFrame

时间:2018-05-17 19:20:15

标签: python pandas python-datetime

我有一个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

怎么办? :/

2 个答案:

答案 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数组更适合处理特定于熊猫的类型。