我有一个带有日期时间和频率的 pandas Timestamp
。然而,日期时间似乎与频率无关。例如,
>>> t = pd.Timestamp('2018-6-6', freq='W-FRI')
>>> t
Timestamp('2018-06-06 00:00:00')
2018 年 6 月 6 日不是星期五。如何从此 Timestamp
获取 2018 年 6 月 1 日(上周五)? (如果 Timestamp
是 2018 年 6 月 1 日,那么它应该返回 2018 年 6 月 1 日。)以下内容有效,但似乎太冗长。
>>> friday = (pd.date_range(t + pd.Timedelta('1D'),
periods=1,
freq='W-FRI')
- 1)[0]
>>> friday
Timestamp('2018-06-01 00:00:00', freq='W-FRI')
最佳答案
OR 如果已经是星期五 (4),我们可以使用 if 语句来不移动日期。感谢@Ben.T,我们可以将其与定义的频率工作日进行比较,从而使其更加通用。
import pandas as pd
t = pd.Timestamp('2018-6-7', freq='W-FRI')
friday = t if t.weekday() == t.freq.weekday else t-1
print(friday)
返回:
2018-06-01 00:00:00
关于python - "Resample"根据其频率的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727668/