2017-03-04 355 views
1

我ENV:python3.6_x64,熊貓0.17.0或更新版本,numpy的1.12.0如何將pd.Series轉換爲datetime?

代碼:

>>> import pandas as pd 
>>> import numpy as np 
>>> df_date = pd.Series(['2017-3-1','2017-3-2']) 
>>> df_date 
0 2017-3-1 
1 2017-3-2 
>>> pd.to_datetime(df_date) 

錯誤:

ValueError: Error parsing datetime string "2017-3-1" at position 5 
... 
SystemError: <class 'str'> returned a result with an error set 
+0

我更新大熊貓0.19.2,和同樣的錯誤.. –

+0

工程於'0.18.1' – Zero

+0

運行完美的'0.19.2' – jezrael

回答

0

這看起來大把known issuepandas使用時Python 3.6它被標記爲固定在pandas version 0.19.2

In [12]: pd.Timestamp('invalid') 
--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
ValueError: Error parsing datetime string "invalid" at position 0 

The above exception was the direct cause of the following exception: 

SystemError        Traceback (most recent call last) 
<ipython-input-12-91abde127db1> in <module>() 
----> 1 pd.Timestamp('invalid') 
pandas/tslib.pyx in pandas.tslib.Timestamp.__new__ (pandas/tslib.c:9932)() 
pandas/tslib.pyx in pandas.tslib.convert_to_tsobject (pandas/tslib.c:25231)() 
pandas/tslib.pyx in pandas.tslib.convert_str_to_tsobject (pandas/tslib.c:26851)() 
pandas/src/datetime.pxd in datetime._string_to_dts (pandas/tslib.c:87106)() 
SystemError: <class 'str'> returned a result with an error set 
+0

在pandas 0.19.2中仍然錯誤,所以我現在使用py3.5 :) –

0

如果您還想要日期時間列,請考慮將您的pandas Series對象轉換爲簡單的DataFrame對象,然後將該列轉換爲datetime。

+0

我會試試看,謝謝。 –

0

我ENV:大熊貓(0.18.1),numpy的(1.12.1)的Python 3.6.1(默認情況下,2017年4月18日,1時19分53秒)

我的工作相同的代碼,但沒有錯誤。 像這樣我的輸出:

>>> import pandas as pd 
>>> import numpy as np 
>>> df_date = pd.Series(['2017-3-1','2017-3-2']) 
>>> pd.to_datetime(df_date) 
0 2017-03-01 
1 2017-03-02 
dtype: datetime64[ns]