繁体   English   中英

在日期索引的 dataframe 中向上移动 x 行

[英]Moving x rows up in a dataframe indexed on dates

我有一个以Date 作为索引的 dataframe 。 dataframe 有股市相关数据,因此日期不连续。 如果我想在 dataframe 中移动 120 行,我该怎么做。 例如:

如果我想从 2018 年初之前的 120 个交易日开始获取数据,我该怎么做:

df['2018-01-01':'2019-12-31']

谢谢

假设您使用的是 pandas 并且 dataframe 按日期排序,一个非常简单的方法是:

initial_date = '2018-01-01'

initial_date_index = df.loc[df['dates']==initial_date].index[0]

offset=120

start_index = initial_date_index-offset


new_df = df.loc[start_index:]

尝试这个:

df[df.columns[df.columns.get_loc('2018-01-01'):df.columns.get_loc('2019-12-31')]]

获取列数组中两个列的位置并索引它们以获得所需的。

更新:

根据您的要求,对上述内容进行一些小的修改。

年度索引

>>> df[df.columns[(df.columns.get_loc('2018')).start:(df.columns.get_loc('2019')).stop]]

上面df.columns.get_loc('2018')将给出 numpy 切片 object 并将为我们提供 2018 年第一个元素的索引(我们使用切片的.start属性对其进行索引),类似地我们对 2019 年最后一个元素的索引进行索引。

每月索引

现在考虑您想要 2018 年前 6 个月的数据(不知道第一天是哪一天),同样可以使用:

>>> df[df.columns[(df.columns.get_loc('2018-01')).start:(df.columns.get_loc('2018-06')).stop]]

正如您在上面看到的,我们使用相同的逻辑对 2018 年的前 6 个月进行了索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM