首页 > 解决方案 > 如何将 MMM-YYYY 中的 Excel 日期转换为日期时间或字符串?

问题描述

我的数据框取自一个 Excel 文件,该文件将日期格式设置为例如 2018 年 1 月。

我想更改为日期时间,例如 01-2018,甚至更改为字符串,例如 01/2018。

我有两个问题:

  1. 尝试转换为日期时间时出现超出范围的错误(纳秒)

    twoyear_df['Date'] = twoyear_df['Date'].apply(lambda x: pd.to_datetime(x).strftime('%m/%Y'))
    
  2. 当我尝试将它们转换为字符串时:

    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保存的所有日期都有纳秒问题。有没有办法绕过或完全删除它?

标签: pythonpandasdatetimedataframe

解决方案


我已经成功地解决了我自己的问题。感谢您的关注。如果有更好的解决方案,我会全力以赴

twoyear_df['Date'] = pd.to_datetime(twoyear_df['Date'], format='%b %y')

推荐阅读