pandas.to_datetime -> 值错误: 仍有未转换的数据: 01

3

我正在尝试转换下面的str列:

data['date']

0          Apr-2001
1          Jun-1987
2          Apr-2011
3          Feb-2006
4          Dec-2000
             ...   
2260663    Jan-2004
2260664    Mar-2003
2260665    Feb-1995
2260666    Jul-2003
2260667    Apr-2014
Name: earliest_cr_line, Length: 2260668, dtype: object

转换为日期时间列:

data['datetime'] = pd.to_datetime(data['date'], format = '%b-%y')

这让我得到以下错误消息

ValueError: unconverted data remains: 01

请问这里有什么问题吗?

谢谢。


请查看strftime()和strptime()格式代码- %y表示两位数年份,%Y表示四位数年份。因为有错别字而投票关闭。 - FObersteiner
1个回答

1

在格式 YYYY 中使用 Y 代表年:

data['datetime'] = pd.to_datetime(data['date'], format = '%b-%Y')

就像@MrFuppes提到的那样,也可以工作:

data['datetime'] = pd.to_datetime(data['date'])

如果不需要显示天数,可以使用月份来表示:

data['per'] = pd.to_datetime(data['date']).dt.to_period('m')

只需要使用pd.to_datetime即可,不需要格式。 - FObersteiner
可以双向工作,顺便说一下它的格式是这样的:2001-04-01。不带日期是否可能? - Skittles
@SkittlesBrah - 不,如果需要日期时间,还需要使用 days,如果需要删除它,则接近月份周期,已添加到答案中。 - jezrael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接