为了账号安全,请及时绑定邮箱和手机立即绑定

强制日期/日期时间到最近的星期五 Python 熊猫

强制日期/日期时间到最近的星期五 Python 熊猫

慕森卡 2022-06-02 15:21:26
我有一个带有交易数据的熊猫数据框,每笔交易都有一个与之关联的日期。交易可以在一周中的任何一天发生,但我想将日期强制为同一周的星期五。换言之,星期二日期 (9-17-2019) 将显示为 9-20-2019。我想我以前做过,但是 a) 不记得如何 b) 不确定它是否是最简单/最有效的。感谢您的帮助-这里是 Python 初学者。
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

假设您的 DataFrame ( df ):

  • Dat列中有源日期,

  • 当前的星期五日期应保存在Dat2列中,

执行:

df['Dat2'] = df.Dat + pd.offsets.Week(n=0, weekday=6) - pd.DateOffset(2)

细节:

  • + pd.offsets.Week(n=0, weekday=6)- 转移到最近的周日(weekday=6),但如果当前工作日已经是周日,则不会发生转移。

  • - pd.DateOffset(2)- 向后移动 2 天。

测试:在 2019 年 9 月的最初几天,结果是:

          Dat       Dat2

0  2019-09-01 2019-08-30

1  2019-09-02 2019-09-06

2  2019-09-03 2019-09-06

3  2019-09-04 2019-09-06

4  2019-09-05 2019-09-06

5  2019-09-06 2019-09-06

6  2019-09-07 2019-09-06

7  2019-09-08 2019-09-06

8  2019-09-09 2019-09-13

9  2019-09-10 2019-09-13

10 2019-09-11 2019-09-13

11 2019-09-12 2019-09-13

12 2019-09-13 2019-09-13

13 2019-09-14 2019-09-13

14 2019-09-15 2019-09-13

15 2019-09-16 2019-09-20

所以:


2019-09-01(星期日)移(回)到2019-08-30,

下周末 (2-8.09) 当前星期五是2019-09-06 ,


查看完整回答
反对 回复 2022-06-02
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信