我的数据框来自一个Excel文件,该文件的日期格式设置为例如2018年1月。
我想更改为日期时间,例如01-2018,甚至更改为字符串,例如01/2018。
我有两个问题:
当尝试转换为日期时间时,出现了超出范围的错误(纳秒)
twoyear_df['Date'] = twoyear_df['Date'].apply(lambda x: pd.to_datetime(x).strftime('%m/%Y'))
当我尝试将其转换为字符串时:
twoyear_df['Date'] = pd.to_datetime(twoyear_df['Date'], format='%m%Y')
我得到
ValueError: time data 'Sep 18' does not match format '%m%Y' (match)
该怎么办?似乎由于纳秒级的问题而无法更改为日期时间,并且因为无法更改其日期时间而无法将其更改为字符串?
我不确定如何提供数据集作为示例。我在这里放一个样品
Date Price Open High Low Change %
0 Sep 18 2.707 2.637 2.711 2.629 2.95%
1 Aug 18 2.629 2.669 2.686 2.587 -1.68%
2 Jul 18 2.674 2.524 2.690 2.508 5.61%
3 Jun 18 2.532 2.431 2.602 2.427 3.94%
4 May 18 2.436 2.492 2.598 2.299 -2.25%
5 Apr 18 2.492 2.278 2.508 2.234 9.78%
6 Mar 18 2.270 2.254 2.366 2.197 0.53%
7 Feb 18 2.258 2.157 2.286 1.947 5.07%
8 Jan 18 2.149 1.907 2.165 1.891 13.88%
9 Dec 17 1.887 1.790 1.927 1.746 5.42%
我避免使用NaT,因为我需要进行一些时间序列分析。我觉得excel保存的所有日期都有一个纳秒级的问题。有没有办法绕过或完全删除它?
答案 0 :(得分:2)
我设法成功解决了自己的问题。感谢您的关注。如果有更好的解决方案,我会为之
twoyear_df['Date'] = pd.to_datetime(twoyear_df['Date'], format='%b %y')