我有以下系列:
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
你可以这样做: (创建示例数据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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。