简体   繁体   English

如何在python jupyter中将对象类型转换为datetime64 [ns]?

[英]how to convert object type to datetime64[ns] in python jupyter?

I have a column of object type like this: 我有一列这样的对象类型:

 quote['SellTime'].head()


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

I want to convert it to to date time (datetime64[ns]) format. 我想将其转换为日期时间(datetime64 [ns])格式。

I have done the following code: 我已经完成以下代码:

 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

But it is still object type: 但是它仍然是对象类型:

 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

You need date s too if need datetime s: 如果需要datetime也需要date

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

Or better is convert times to timedelta s: 或者将时间转换为timedelta更好:

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]

Because if convert datetimes to time s: 因为如果将datetimes转换为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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM