TypeError:无法识别的值类型:<class'str'>

Luk*_*uke 6 python pandas

我目前正在尝试将Pandas列转换为datetime列,以便找出三组日期列之间的差异(1.搜索酒店的日期,2。到达的日期,3。离开的日期)

这是它的外观示例:

>>> print(df2)
date    Arrive  Depart
20180516        
20180516        
20180518    6172018 6242018
20180515        
20180519        
20180517        
20180515    6052018 6062018
20180517    8132018 8162018
20180515    7112018 7152018
20180517    7272018 8012018
Run Code Online (Sandbox Code Playgroud)

到达和离开是字符串。

我尝试df2['Arrive']使用以下方法进行转换:

df2['Arrive'] = pd.to_datetime(df2['Arrive'])
Run Code Online (Sandbox Code Playgroud)

但是,这将引发错误:

TypeError: Unrecognized value type: <class 'str'>
Run Code Online (Sandbox Code Playgroud)

我浏览了许多文章,但找不到完全出问题的方法或解决方法。

jez*_*ael 17

添加参数errors='coerce'format='%m%d%Y'to_datetime

df2['Arrive'] = pd.to_datetime(df2['Arrive'], errors='coerce', format='%m%d%Y')
print (df2)
       date     Arrive   Depart
0  20180516        NaT      NaN
1  20180516        NaT      NaN
2  20180518 2018-06-17  6242018
3  20180515        NaT      NaN
4  20180519        NaT      NaN
5  20180517        NaT      NaN
6  20180515 2018-06-05  6062018
7  20180517 2018-08-13  8162018
8  20180515 2018-07-11  7152018
9  20180517 2018-07-27  8012018
Run Code Online (Sandbox Code Playgroud)