python - 在索引是日期时迭代数据框
问题描述
我想知道是否有可能在一段时间内迭代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')
for index, row in f.iterrows():
prev = f.loc[index - someNumber] <----- You cant minus from date
current = f.loc[index]
解决方案
Pandas 具有.iloc
按行号访问行的功能。您可以使用以下方法获取当前行号enumerate
:
for e, (index, row) in enumerate(f.iterrows()):
prev = f.iloc[e - 1]
current = row
警告:在第一次迭代期间(即何时e == 0
),f.iloc[e - 1]
将获得数据框的最后一行。
推荐阅读
- azure - 在 Azure 的数据工厂中将不同数量的行合并为一行
- shell - 如何在 shell 脚本中使用“systemctl restart logstash”启动logstash
- powerpoint - 带有一些可编辑字段的单页幻灯片
- php - 如何更正作曲家 laravel 的 [Composer\Downloader\TransportException] 错误
- algorithm - 在 JPA/Hibernate 中存储二维字符串数组
- wordpress - 仅包含 1 篇博文的自定义主页
- sql - 根据列表中的列匹配值选择SQL数据库中的行
- python - 如何将其他jupyter笔记本中的情节图集成到新笔记本中?
- android - 分类器“用户”没有伴随对象,因此必须在此处初始化
- python - 将字符串转换为新字符串时得到错误结果