【发布时间】:2019-08-20 05:12:50
【问题描述】:
我有一个数据框,其中包含十年来证券的开盘/高/低/最后/变化/成交量值的下采样。 我正在尝试获取每周的样本计数,即我的下采样方法有多少样本,在这种情况下是一个音量条,每周对整个数据集进行采样,以便我可以绘制它并与其他下采样方法进行比较。
到目前为止,我已经尝试按照here 和here 规定的答案在 df 中创建一个名为“Year-Week”的系列。
这些答案的问题在于,我的 EOY 日期(例如“1997-12-30”)由于this 答案中所述使用的 ISO 日历系统而被转换为“1997-01”,这在我应用时破坏了我的结果value_counts 方法。
我的代码如下:
volumeBar['Year/Week'] = (pd.Series(volumeBar.index).dt.year.astype(str) + "/" + pd.Series(volumeBar.index).dt.week.astype(str)).values
所以我的问题是:因为它代表以下示例 DateTimeIndex
Date
1997-12-22
1997-12-29
1997-12-30
变成
Year/Week
1997/52
1997/1
1997/1
我怎样才能得到以下预期结果?
Year/Week
1997/52
1997/52
1997/52
请记住,由于数据集的大小以及由于 ISO 日历的工作方式而出现的这些结果的不稳定性质,我无法手动更正此行为。
非常感谢!
【问题讨论】:
-
但是你真的可以接受 1997 年的最后一周有 10 天吗?
-
就本研究而言,这应该不是太大的问题。老实说,52 可能是 53,这不会打扰我,我只是不希望 EOY 的结果变成同年年初的结果