首页 > 解决方案 > 在索引是日期时迭代数据框

问题描述

我想知道是否有可能在一段时间内迭代dataframe它的索引是一个日期并在不使用预设函数的情况下获取以前的索引shift()rolling()等等?

import pandas as pd
import numpy as np
pd.core.common.is_list_like = pd.api.types.is_list_like
from pandas_datareader.data import DataReader 
from datetime import datetime

f = DataReader('F', 'robinhood')

f.head() 输出截屏

for index, row in f.iterrows():
prev = f.loc[index - someNumber] <----- You cant minus from date
current = f.loc[index]

标签: pythonpython-3.xpandas

解决方案


Pandas 具有.iloc按行号访问行的功能。您可以使用以下方法获取当前行号enumerate

for e, (index, row) in enumerate(f.iterrows()):
    prev = f.iloc[e - 1]
    current = row

警告:在第一次迭代期间(即何时e == 0),f.iloc[e - 1]将获得数据框的最后一行。


推荐阅读