<p>将<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html" rel="nofollow noreferrer">^{<cd1>}</a>分别用于两种格式,如果格式不匹配,则获取缺少的值,因此对于新列,请使用<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.fillna.html" rel="nofollow noreferrer">^{<cd2>}</a>:</p>
<pre><code>df = pd.DataFrame({'date': ['2000-01-12', '2015-01-23', '20.12.2015', '31.12.2009']})
print (df)
date
0 2000-01-12
1 2015-01-23
2 20.12.2015
3 31.12.2009
date1 = pd.to_datetime(df['date'], errors='coerce', format='%Y-%m-%d')
date2 = pd.to_datetime(df['date'], errors='coerce', format='%d.%m.%Y')
df['date'] = date1.fillna(date2)
print (df)
date
0 2000-01-12
1 2015-01-23
2 2015-12-20
3 2009-12-31
</code></pre>
<blockquote>
<p>and ideally have them in the second format</p>
</blockquote>
<p>python/pandas中的datetimes格式默认为<code>YYYY-MM-DD</code>,如果需要自定义,则可以,但值会转换为字符串,因此datetimelike函数失败:</p>
<pre><code>df['date'] = df['date'].dt.strftime('%d.%m.%Y')
print (df)
date
0 12.01.2000
1 23.01.2015
2 20.12.2015
3 31.12.2009
print (type(df.loc[0, 'date']))
<class 'str'>
</code></pre>