繁体   English   中英

在python中截断日期为星期一或星期几的任何一天

[英]Truncate date to last monday or any day of the week in python

给定一个pandas.Series存储时间戳,例如:

In [14]: x
Out[14]: 
0   2015-11-03
1   2015-11-17
2   2015-12-08
3   2015-12-22
4   2016-01-05
dtype: datetime64[ns]

我想截断日期,以便我只有每个时间戳的最后一个星期一

In [14]: x
Out[14]: 
0   2015-11-02
1   2015-11-16
2   2015-12-07
3   2015-12-21
4   2016-01-04
dtype: datetime64[ns]

您可以使用dt.dayofweek属性构造TimedeltaIndex ,因为Monday是第0天。大于此的任何星期几将导致timedeltas等于要减去的天数:

In [49]:
s = s - pd.TimedeltaIndex(s.dt.dayofweek, unit='D')
s

Out[49]:
index
0   2015-11-02
1   2015-11-16
2   2015-12-07
3   2015-12-21
4   2016-01-04
Name: date, dtype: datetime64[ns]

例如,对于2015-11-052015-11-042015-11-032015-11-02的输出pd.TimedeltaIndex(s.dt.dayofweek, unit='D')3 days2 days ,分别为1 days0 days

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM