代码之家  ›  专栏  ›  技术社区  ›  Slartibartfast

如何将pandas中的索引字符串更改为datetime?

  •  0
  • Slartibartfast  · 技术社区  · 5 年前

    我正在尝试将索引字符串更改为index,这是pandas数据帧中的datetime。

        High    Low Open    Close   Volume  Adj Close
    Date                        
    1987-12-31  1.535714    1.495536    1.517857    1.500000    29400000.0  1.200883
    1988-01-04  1.598214    1.508929    1.526786    1.598214    82600000.0  1.279513
    1988-01-05  1.651786    1.580357    1.642857    1.593750    77280000.0  1.275938
    1988-01-06  1.607143    1.562500    1.607143    1.562500    67200000.0  1.250920
    1988-01-07  1.598214    1.517857    1.553571    1.589286    53200000.0  1.272364
    ... ... ... ... ... ... ...
    2007-12-24  28.475714   27.827143   27.861429   28.400000   120050700.0 24.785059
    2007-12-26  28.708570   28.117144   28.430000   28.421429   175933100.0 24.803761
    2007-12-27  28.994286   28.257143   28.421429   28.367144   198881900.0 24.756376
    2007-12-28  28.794285   28.125713   28.655714   28.547142   174911800.0 24.913471
    2007-12-31  28.642857   28.250000   28.500000   28.297142   134833300.0 24.695290
    

    若要更改日期格式,我已尝试使用

    data['Date'] = data.to_datetime(data['Date'], format ='%Y-%m-%d')
    

    但是,我得到以下错误:

    如何将索引更改为datetime格式?

    AttributeError: 'DataFrame' object has no attribute 'to_datetime'
    
    3 回复  |  直到 5 年前
        1
  •  1
  •   Rithin Chalumuri    5 年前

    pandas.to_datetime() 不是dataframe对象上的方法,而是 pandas 模块本身。( Docs )

    无法使用访问索引 df['Date'] 是的。此语法用于访问列。

    如果要访问索引并将其类型更改为DateTime,请尝试以下操作:

    data.index = pd.to_datetime(data.index, format ='%Y-%m-%d')
    
        2
  •  1
  •   aprilangel    5 年前

    看起来您正在尝试修改名为Date的索引它不是一列。试试这个。

    data.index = pd.to_datetime(df.index, format ='%Y-%m-%d')
    
        3
  •  0
  •   wwsinsh    5 年前

    日期列中的单元格是字符串?您应该获取date列,并使用date time库获取每个字符串的最新时间。