Python 如何在pandas中将字节对象类型转换为datetime

Python 如何在pandas中将字节对象类型转换为datetime,python,pandas,datetime,dataframe,Python,Pandas,Datetime,Dataframe,我的dataframe中有以下列,它已经从Mysql DB导入: atst b'2017-01-17 01:50:00' b'2017-01-17 01:50:00' b'2017-01-17 01:50:00' 我需要将其转换为datetime,我已经尝试过这种方法,但它将Nat放在列中: df1['atst']=df['atst'].str.decode("utf-8") df1['atst']=pd.to_datetime(df1['atst']) 我解码为UTF-8的原因是,当

我的dataframe中有以下列,它已经从Mysql DB导入:

atst 
b'2017-01-17 01:50:00'
b'2017-01-17 01:50:00'
b'2017-01-17 01:50:00'
我需要将其转换为datetime,我已经尝试过这种方法,但它将Nat放在列中:

 df1['atst']=df['atst'].str.decode("utf-8")
 df1['atst']=pd.to_datetime(df1['atst'])
我解码为UTF-8的原因是,当我尝试在不解码的情况下将其转换时,会出现以下错误:

Unknown string format

列的内容由字符串组成,而不是字节字符串,因此不再需要从UTF-8解码,因为它们已经被解码了

相反,通过像对待任何其他字符串一样对待元素,从第一个索引开始到最后对元素进行切片。(请注意,0表示字符串中出现的第一个字符,因此被忽略)


如果您的数据帧是按以下格式组装的,
str.decode
步骤将正常工作:

# note b is prefixed in front of quotes
d = pd.DataFrame(dict(atst_mod=[b"2017-01-17 01:50:00", b"2017-01-17 01:50:00", 
                                b"2017-01-17 01:50:00"]))  
pd.to_datetime(d['atst_mod'].str.decode("utf-8"))

0   2017-01-17 01:50:00
1   2017-01-17 01:50:00
2   2017-01-17 01:50:00
Name: atst_mod, dtype: datetime64[ns]
# note b is prefixed in front of quotes
d = pd.DataFrame(dict(atst_mod=[b"2017-01-17 01:50:00", b"2017-01-17 01:50:00", 
                                b"2017-01-17 01:50:00"]))  
pd.to_datetime(d['atst_mod'].str.decode("utf-8"))

0   2017-01-17 01:50:00
1   2017-01-17 01:50:00
2   2017-01-17 01:50:00
Name: atst_mod, dtype: datetime64[ns]