0

我目前正在使用一些动手数据探索 python 库 pandas,其中一列包含一个 datetime 对象。但是,当使用 DataFrame 方法解析表时,日期列中的日期时间对象会被解析为初始值,例如 1970-01-16 14:12:28。

例如,如果我有一个具有以下内容的 np.array:

np.array(result, dtype=my_dtype) =
array([ (datetime.datetime(2012, 9, 9, 0, 0), datetime.datetime(2012, 9, 8, 15, 10)),
dtype=[('Date', ('<M8[us]', {})), ('Forecasting', ('<M8[us]', {})),

解析后,将返回以下内容:

test = pandas.DataFrame(np.array(result, dtype=my_dtype))
test['Date'] =
1970-01-16 14:12:28.800000

test['Forecasting'] =
1970-01-16 14:11:57

这是一个错误,还是我做错了什么?

仅供参考:熊猫。版本= 0.8.1,numpy。版本= 1.6.2 和 Python 2.7.3

4

2 回答 2

2

I'm not familiar with panda, but I suspect something is wrong with the dtype you're choosing for your fields. It looks like you're using [us], that is, microseconds from the epoch (1970-01-01), when you probably should be using days from the epoch.

Another possibility is to use basic datetime objects in your ndarray, by using dtype=object.

于 2012-09-11T12:22:39.670 回答
1

这是一个错误。在此报告:http: //github.com/pydata/pandas/issues/2095

于 2012-10-20T20:19:59.260 回答