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

Python Timedelta64将天转换为月

  •  1
  • beta  · 技术社区  · 8 年前

    start       end
    2016-06-13  2016-07-20
    

    这些列的数据类型为 datetime64[ns] .

    start       end         duration
    2016-06-13  2016-07-20  1.1
    

    我试图做到以下几点:

    df['duration'] = df['end'] - df['start']
    

    结果如下所示:

    start       end         duration
    2016-06-13  2016-07-20  37 days 00:00:00.000000000
    

    然后我试着做了以下几点:

    df['duration'] = df['end'] - df['start']).dt.months
    

    但这会产生以下错误

    duration timedelta64[ns] .

    我怎样才能达到预期的结果?

    0 回复  |  直到 8 年前
        1
  •  4
  •   gpr DSM    6 年前
    import numpy as np #version: 1.16.2
    import pandas as pd #version: 0.25.1
    
    df['duration'] = (df['end'] - df['start'])/np.timedelta64(1, 'M')
    
        2
  •  0
  •   Alex Nea Kameni    5 年前

    TypeError:无法获取NumPy datetime元数据[D]和[M]的公共元数据除数,因为它们具有不兼容的非线性基本时间单位
    import numpy as np #version: 1.18.5
    import pandas as pd #version: 1.1.5
    df['duration'] = (df['end'] - df['start']).astype('timedelta64[M]')/np.timedelta64(1, 'M')