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

将Matlab Datenumb转换为python datetime

  •  0
  • SBad  · 技术社区  · 7 年前

        datesAvail    date
    0       737272  737272
    1       737273  737273
    2       737274  737274
    3       737275  737275
    4       737278  737278
    5       737279  737279
    6       737280  737280
    7       737281  737281
    

    在互联网上阅读,我想使用下面的解决方案将MatlabDateTime转换为python日期

    python_datetime = datetime.fromordinal(int(matlab_datenum)) + timedelta(days=matlab_datenum%1) - timedelta(days = 366)
    

    其中matlab_datenum在我的例子中等于DF['date']或DF['datesAvail']

    我犯了一个错误 TypeError: cannot convert the series to <class 'int'>

    datesAvail    int64
    date          int64
    dtype: object
    

    我不确定我会错在哪里。非常感谢您的帮助

    1 回复  |  直到 7 年前
        1
  •  1
  •   SRT HellKitty    7 年前

    我不确定您希望从中得到什么输出,但我假设它是一个列表?

    int() . int可以接受的唯一参数是字符串,一个类似于对象或数字的字节。

    当你打电话的时候 DF['date'] DF['date'].tolist()

    如果您希望以列表的形式输出,您可以进行如下所示的列表理解(对不起,这太长了);

    python_datetime_list = [datetime.fromordinal(int(i)) + timedelta(days=i%1) - timedelta(days = 366) for i in DF['date'].tolist()]