【发布时间】:2020-10-20 03:20:06
【问题描述】:
在将数据框列的字符串数据转换为日期时间时,我遇到了以下让我印象深刻的情况:
import pandas as pd
mydates = {'a':'2008-04-11','b':'2007-06-14','c':'2001-01-08','d':'2001-07-31'}
myDF = pd.DataFrame.from_dict(mydates,orient='index', columns=['dates'])
现在为了将字符串转换为日期类型,我进行如下操作:
myDF['as_date'] = pd.to_datetime(myDF['dates'].astype('str').str.replace('-',''), format='%Y%m%d')
一切都好。
但是...
我开始更改日期并写了 'b':'1090-06-14' -> 它不起作用
但二战结束有效:'b':'1945-09-02'
以及法国大革命的开始:'b':'1789-05-05'
尝试一下,我发现限制是 1678-01-01,所以如果你执行 'b':'1678-01-01' 它可以工作,但对于早于该日期的任何日期,它都不再工作了。
这并不是说这在编程上很重要(我认为在该日期之前的数据框中没有太多要包含的内容)但是为什么会发生这种情况?
谢谢
【问题讨论】:
标签: python pandas dataframe date datetime