Python从pandas date列获取星期几的前一天(在我的示例中为星期四)

克里斯

我有一个熊猫日期栏,我想返回上一个星期四的日期(可以是一周中的任何一天)。我使用pd.offsets.Week,但是当年份更改并且Week重新开始时,我没有得到预期的结果。这是我的数据框为“ d”:

raw date Thursday week_start 0 2019-01-03 2018-12-27 2018-12-27 1 2019-01-03 2018-12-27 2018-12-27 2 2019-01-03 2018-12-27 2018-12-27 3 2019-01-02 2018-12-27 2018-12-27 4 2019-01-02 2018-12-27 2018-12-27 5 2019-01-02 2018-12-27 2018-12-27 6 2019-01-03 2019-01-03 2018-12-27 7 2019-01-03 2019-01-03 2018-12-27 8 2019-01-03 2019-01-03 2018-12-27 9 2019-01-03 2019-01-03 2018-12-27 10 2019-01-02 2018-12-27 2018-12-27 11 2019-01-02 2018-12-27 2018-12-27 12 2019-01-02 2018-12-27 2018-12-27

d['week_start'] = d['raw date'] - pd.offsets.Week(weekday=3)

我预计d ['week_start'] = 1/3/2019返回1/3/2019,而不是12/27/2018。我怀疑是因为1/3/2019的Week为0,所以它返回了该周的星期四。无论年份如何变化,如何获取上一个星期四的日期?

耶斯列尔

您只能将Series.wherewithSeries.dt.weekday用于更改,而不能用于以下Thursday值:

rng = pd.date_range('2019-01-03', periods=20)
d = pd.DataFrame({'raw date': rng}) 

mask = d['raw date'].dt.weekday == 3
d['week_start'] = d['raw date'].where(mask, d['raw date'] - pd.offsets.Week(weekday=3))
print(d)
     raw date week_start
0  2019-01-03 2019-01-03
1  2019-01-04 2019-01-03
2  2019-01-05 2019-01-03
3  2019-01-06 2019-01-03
4  2019-01-07 2019-01-03
5  2019-01-08 2019-01-03
6  2019-01-09 2019-01-03
7  2019-01-10 2019-01-10
8  2019-01-11 2019-01-10
9  2019-01-12 2019-01-10
10 2019-01-13 2019-01-10
11 2019-01-14 2019-01-10
12 2019-01-15 2019-01-10
13 2019-01-16 2019-01-10
14 2019-01-17 2019-01-17
15 2019-01-18 2019-01-17
16 2019-01-19 2019-01-17
17 2019-01-20 2019-01-17
18 2019-01-21 2019-01-17
19 2019-01-22 2019-01-17

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从Python(pandas)的日期列中获取星期开始日期(星期一)?

如何在javascript中获得星期几的第一天和最后一天

如何在java中获取月份的最后一个星期四

如何在PHP中获取当月第一天的星期几

如何在PHP中将“一周的第一天”设置为星期四

在python中将日期截断为最后一个星期一或一周中的任何一天

使用python获取当月的最后一个星期四

Bigquery:在标准SQL中获取星期几/月的第一天

Python根据双索引中的星期几创建伪变量

在Python中以正确的顺序对星期几进行排序

如何按星期几和一天中的小时筛选熊猫DatetimeIndex

Python-从星期几,年份和星期数获取日期

Python:返回该月第三个星期四的下一次出现的日期

如何在Python中创建返回星期几的代码?

在Pandas Groupby情节栏中重新排序星期几

如何使用Python确定从星期日开始的一年中的星期几?

Python:根据“年”,“月”,“天”列中的星期几来实现一列?

python使用datetime(datetime.date)和timedelta获取UTC的前一天日期

将每天的OHLC重新采样到每周的第一天,星期五是第一天,星期四是最后一天?

如何判断Python是星期几?

php:使用“日期”功能从给定日期开始的星期几:比预期答案提前一天

如何从Android中的短信查询中分别获取一天中的时间,星期几和月份

JSON数据-使用Javascript / Jquery按星期几(星期日,星期一,星期二,星期三,星期四,星期五,星期六)分组

获取一年中的星期几,其中一周的第一天是星期日

如何从星期几获取月份中的某一天?

按星期几和一天中的时间过滤日期

以 Python 方式提取星期几

Python:如何根据星期几获取数据框中某个范围内的项目数?

在 Python 中获取前一天的数据