在索引为日期的情况下遍历数据框

时间:2018-09-21 09:39:30

标签: python python-3.x pandas

我想知道在索引为日期的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() outout screenShot

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

1 个答案:

答案 0 :(得分:0)

Pandas具有.iloc,用于按行号访问行。您可以使用enumerate获取当前行号:

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

警告:在第一次迭代期间(即e == 0时),f.iloc[e - 1]将为您提供数据帧的最后一行。