首页 > 解决方案 > 以选定的时间间隔获取熊猫项目

问题描述

我试图找到一种更快的方法来选择不同时间间隔的日期。目前,我正在遍历数据框,然后使用iloc. 不过,性能正在造成瓶颈。文件很大,而且有很多,所以欢迎任何帮助。

#example
df = pd.DataFrame(pd.date_range(start='01/01/1980', end='01/01/2020'), columns=['DT'])

n = 5
spans = []
max_len = len(df) - n
for k in df.index:
    if k < max_len:
        spans.append([df.iloc[k].DT, df.iloc[k + n].DT])

有没有“更好”的方式来做到这一点,即更快。谢谢。

标签: pythonpandaspython-2.7dataframe

解决方案


也许您可以DT按所需数量移动列:

df = pd.DataFrame(pd.date_range(start='01/01/2018', end='01/01/2020'), columns=['DT'])

df['DT2'] = df['DT'].shift(-5)
print(df[df['DT2'].notna()])

印刷:

            DT        DT2
0   2018-01-01 2018-01-06
1   2018-01-02 2018-01-07
2   2018-01-03 2018-01-08
3   2018-01-04 2018-01-09
4   2018-01-05 2018-01-10
..         ...        ...
721 2019-12-23 2019-12-28
722 2019-12-24 2019-12-29
723 2019-12-25 2019-12-30
724 2019-12-26 2019-12-31
725 2019-12-27 2020-01-01

[726 rows x 2 columns]

推荐阅读