我正在尝试对熊猫功能进行简单的测试来处理日期和时间。格式。 为此我创建了一个数据框,其值如下所示。 :
df = pd.DataFrame({'date1' : ['10-11-11','12-11-12','10-10-10','12-11-11',
'12-12-12','11-12-11','11-11-11']})
这里我假设值是日期。我正在使用pandas的to_datetime函数将其转换为正确的格式。
df['format_date1'] = pd.to_datetime(df['date1'])
print(df)
Out[3]:
date1 format_date1
0 10-11-11 2011-10-11
1 12-11-12 2012-12-11
2 10-10-10 2010-10-10
3 12-11-11 2011-12-11
4 12-12-12 2012-12-12
5 11-12-11 2011-11-12
6 11-11-11 2011-11-11
在这里,Pandas将数据帧的日期读作“MM / DD / YY”并以原生格式(即YYYY / MM / DD)进行转换。我想检查Pandas是否可以接受我的输入,表明日期格式实际上是“YY / MM / DD”,然后让它转换为其原生格式。这将更改行号的值:5。为此,我运行以下代码。但它给了我一个错误。
df3['format_date2'] = pd.to_datetime(df3['date1'], format='%Y/%m/%d')
ValueError: time data '10-10-10' does not match format '%Y/%m/%d' (match)
我见过那种解决方案here。但我希望得到一个简单明了的答案。
答案 0 :(得分:2)
%Y
采用4位数年份(即2016年)。 %y
取2位数年份(即16岁,即2016年)。将%Y
更改为%y
,它应该有效。
格式说明符中的破折号也不存在。您需要将格式更改为%y-%m-%d