2017-08-09 80 views
2

我被困在過去的幾個小時試圖解決以下問題。傳遞切斷日期時間

在一個大的數據集合I從自動系統有,有一個DATE_TIME值,這對於在午夜行具有不具有值的完整的小時等:12-MAY-2017 0點16分二十秒

當我嘗試將此轉換爲日期(以便其可用於轉換)如下:

df['DATE_TIME'].astype('datetime64[ns]') 

我得到以下錯誤:

Error parsing datetime string "12-MAY-2017 0:16:20" at position 3 

我試着寫一些REGEX來拉出每一塊,但無法得到任何工作,因爲小時可能分別是1或2個字符。它似乎也不是爲每個peice編寫正則表達式的理想解決方案。

對此的任何想法?

回答

3

嘗試使用pandas.to_datetime()方法:

df['DATE_TIME'] = pd.to_datetime(df['DATE_TIME'], errors='coerce') 

參數errors='coerce'將採取那些不能被轉換爲datatime D型字符串的護理

3

我想你需要pandas.to_datetime只:

df = pd.DataFrame({'DATE_TIME':['12-MAY-2017 0:16:20','12-MAY-2017 0:16:20']}) 
print (df) 
      DATE_TIME 
0 12-MAY-2017 0:16:20 
1 12-MAY-2017 0:16:20 

df['DATE_TIME'] = pd.to_datetime(df['DATE_TIME']) 
print (df) 
      DATE_TIME 
0 2017-05-12 00:16:20 
1 2017-05-12 00:16:20 

numpy轉換爲astype好像problematic,因爲需要strings in ISO 8601 date or datetime format

df['DATE_TIME'].astype('datetime64[ns]') 

ValueError: Error parsing datetime string "12-MAY-2017 0:16:20" at position 3

編輯:

如果日期時間被打破(一些字符串或整數),然後使用MaxU answer

相關問題