2017-12-18 77 views
0

我有對象類型的這樣的柱:如何將對象類型轉換爲python jupyter中的datetime64 [ns]?

quote['SellTime'].head() 


Out[32]: 
    0 94520 
    1 94538 
    2 94609 
    3 94615  
    4 94617 
    Name: SellTime, dtype: object 

我想將其轉換爲對日期時間(datetime64 [NS])格式。

我也做了下面的代碼:

quote['SellTime'].astype(str).astype(int) 
t2 = quote['SellTime'].astype(str).str.zfill(6) 
quote['SellTime'] = pd.to_datetime(t2, format='%H%M%S').dt.time 

,但它仍然是對象類型:

quote['SellTime'].head() 

0 09:45:20 
1 09:45:38 
2 09:46:09 
3 09:46:15 
4 09:46:17 
Name: SellTime, dtype: object 

回答

1

你需要date太如果需要datetime S:

quote['SellTime'] = pd.to_datetime(t2, format='%H%M%S') 
print (quote) 
      SellTime 
0 1900-01-01 09:45:20 
1 1900-01-01 09:45:38 
2 1900-01-01 09:46:09 
3 1900-01-01 09:46:15 
4 1900-01-01 09:46:17 

或者更好的是將時間轉換爲timedelta s:

quote['SellTime']=pd.to_timedelta(pd.to_datetime(t2,format='%H%M%S').dt.strftime('%H:%M:%S')) 
print (quote['SellTime']) 
0 09:45:20 
1 09:45:38 
2 09:46:09 
3 09:46:15 
4 09:46:17 
Name: SellTime, dtype: timedelta64[ns] 

因爲如果轉換日期時間到time S:

quote['SellTime'] = pd.to_datetime(t2, format='%H%M%S').dt.time 

print (quote['SellTime'].dtype) 
object 

print (quote['SellTime']) 
0 09:45:20 
1 09:45:38 
2 09:46:09 
3 09:46:15 
4 09:46:17 
Name: SellTime, dtype: object 

print (quote['SellTime'].apply(type)) 
0 <class 'datetime.time'> 
1 <class 'datetime.time'> 
2 <class 'datetime.time'> 
3 <class 'datetime.time'> 
4 <class 'datetime.time'> 
Name: SellTime, dtype: object 
+0

我都試過,但我不不想在SellTime開始只是需要時間不是一年 – ary

+0

我想我明白那年,但不可能在python中創建沒有日期的日期。但是可以創建[timedelta](http://pandas.pydata.org/pandas-docs/stable/timedeltas.html),whot是最接近你需要的。 – jezrael

+1

That worked Tnx – ary

相關問題