【问题标题】:Python Time differencing in pandas熊猫中的Python时差
【发布时间】:2014-02-09 20:36:52
【问题描述】:

假设我有一个日期数组:

df=pd.DataFrame({'Date': [ '5/4/1985', '6/13/1983', '6/13/1982', '12/28/1987'], 'Name': ['J','K','L','M']})

我想找出它们与今天的年、周或季度(一年中的四个)之间的差异。

到目前为止,我知道我会用pd.datetime.now() 来代表今天。

【问题讨论】:

    标签: python datetime pandas


    【解决方案1】:

    要获得纳秒差的数量,只需这样做:

    In [60]:
    pd.datetime.now()-pd.to_datetime(df['Date'])
    Out[60]:
    0   10508 days, 15:56:08.609000
    1   11199 days, 15:56:08.609000
    2   11564 days, 15:56:08.609000
    3    9540 days, 15:56:08.609000
    Name: Date, dtype: timedelta64[ns]
    

    要获得天数或年数(等)的差异:

    q=pd.datetime.now()-pd.to_datetime(df['Date'])
    array(q).astype('timedelta64[D]').astype(int) #in days
    array(q).astype('timedelta64[Y]').astype(int) #in years
    

    【讨论】:

    • 有没有办法得到年、季或周而不是天
    • 对不起,默认值不是以天为单位,而是以纳秒为单位。更正了。不知道能不能得到季度,timedelta64 有 4 种类型可供选择:D W M Y,分别代表日、周、月和年。
    • 所以我想将其更改为季度的唯一方法是更改​​为月然后除以 3?
    • 我想这会更好(比根据周数或天数计算)。可能有更优雅的方法,我不知道。
    猜你喜欢
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 2020-09-25
    • 2021-10-26
    • 2013-06-23
    相关资源
    最近更新 更多