我试图做一个简单的测试熊猫处理日期和格式的能力。为此,我创建了一个具有如下所示值的dataframe。:
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']})这里我假设值是日期。我正在用熊猫的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的解决方案。但我希望能得到一个简单明了的答案。
发布于 2016-10-04 06:51:20
格式说明符中的%Y采用4位数的年份(即2016年)。%y采用2位数的年份(即16,即2016年)。将%Y更改为%y,它应该可以工作。
此外,格式说明符中的破折号不存在。您需要将格式更改为%y-%m-%d
https://stackoverflow.com/questions/39845833
复制相似问题