开发者社区> 问答> 正文

系列数据之间的天数

我有以下系列:

df

生产

Date
2001-01-03    True
2002-07-24    True
2002-07-29    True
2008-09-30    True
2008-10-13    True
2008-10-28    True
2008-11-13    True
2008-11-21    True
2008-11-24    True
2008-12-16    True
2009-03-10    True
2009-03-23    True
Name: pct_day, dtype: bool

我怎样才能知道除了周末之外,值之间有多少天是正确的? 问题来源StackOverflow 地址:/questions/59382468/how-many-days-between-series-data

展开
收起
kun坤 2019-12-27 17:09:56 374 0
1 条回答
写回答
取消 提交回答
  • 你可以这样做: (创建示例数据aframe只是作为示例)

    >>> import pandas.util.testing as tm
    
    >>> df = tm.makeTimeDataFrame(freq='M', nper=5)
    >>> print(df)
    
                       A         B         C         D
    2000-01-31  1.051346  1.722165 -0.659687  1.026716
    2000-02-29  0.352166  1.699898  1.469741 -0.138593
    2000-03-31 -0.202217 -0.470095  0.169060 -0.241817
    2000-04-30  0.446261  1.518129  2.263510  1.800027
    2000-05-31 -0.088365  1.923264  1.763859  0.348480
    

    diff方法将计算日期时间。两个日期之间的时间间隔,当然第0个索引是NaT,因为在它之前什么都没有。

    >>> df['time_delta'] = df.index.to_series().diff()
    >>> print(df)
    
                       A         B         C         D time_delta
    2000-01-31  1.051346  1.722165 -0.659687  1.026716        NaT
    2000-02-29  0.352166  1.699898  1.469741 -0.138593    29 days
    2000-03-31 -0.202217 -0.470095  0.169060 -0.241817    31 days
    2000-04-30  0.446261  1.518129  2.263510  1.800027    30 days
    2000-05-31 -0.088365  1.923264  1.763859  0.348480    31 days
    

    然后,如果希望以浮点数而不是日期时间对象的形式获得天数,可以使用该系列。dt访问器:

    >>> days = df.time_delta.dt.days
    >>> print(days)
    
    2000-01-31     NaN
    2000-02-29    29.0
    2000-03-31    31.0
    2000-04-30    30.0
    2000-05-31    31.0
    Freq: M, dtype: float64
    
    2019-12-27 17:10:02
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载