你不能直接处理它。您可以看到details on datetime formatting 并注意到有一个%y 和%Y 指令,分别表示2 位数和4 位数年份。(我不知道dayfirst,但我认为apply 用例对其他人仍然有帮助。)
我建议创建一个小函数,然后在应用列上使用该函数。像这样的:
>>> def convertYear(val):
... (day, month, year) = val.split('/')
... if len(year) == 2:
... if int(year) > 40:
... year = '19' + year
... else:
... year = '20' + year
... newvals = [day, month, year]
... return '/'.join(newvals)
... return val
那你可以call this function on the column of interest;类似:
df.Date.apply(convertYear, axis='index') # don't use axis=0, not readability-friendly
现在你终于可以完成了:
pd.to_datetime(df['Date'], format="%d/%m/%Y"
这里有龙
请注意:尽管我的函数试图变得聪明,它假设你有欧洲日期(DD/MM/YYYY),我假设这是因为13/08/05。在美国,它是 (MM/DD/YYYY)。
因为这个烦恼,正确的datetimes should be internationalized,这真的只是东亚风格。 (也许整个亚洲??)