【发布时间】:2019-09-12 10:48:25
【问题描述】:
我觉得这应该是 a) 相对简单,并且 b) 已经在其他地方回答了,但我似乎无法弄清楚,几个小时的谷歌搜索让我无处可去......
我在 pandas 数据框中有一些月度数据。该索引是日期时间索引。我想将此索引移至下个月的第一个星期一/星期二/等,但我似乎不知道该怎么做...
我已经弄清楚如何分别使用 shift() 方法使用 freq='BMS' 和 freq='BM' 切换到每月的第一个工作日和最后一个工作日。但是,我不知道如何从那里开始。下面写了一个移动我的数据索引的例子:
#setting up an arbitrary example df with a similar datetime index:
date_rng = pd.date_range(start='1/1/1950', end='1/08/1955', freq='MS').shift(14, freq='D')
test_df = pd.DataFrame(range(len(date_rng)), index=date_rng, columns=['ticker_name'])
#what I know how to do so far
rng_index = test_df.index
new_range = rng_index.shift(1, freq='BMS') #first business day of month (use 'BM' for last business day of month
test_df.index = new_range #My df should now have a new index pointing to the first business day of the next month.
我希望得到下个月的第一个星期一或第一个星期二或第一个 ...,而不是指向下个月的第一个工作日。
非常感谢任何和所有帮助! 干杯
【问题讨论】:
-
调到第一个工作日后,再调到下周一?
-
对。但这就是我能弄清楚该怎么做的事情。我如何告诉 shift() 去下周一?
标签: python-3.x pandas datetime