python - 在 n 行后在 pandas 中求和

标签 python python-3.x pandas

我正在处理(当前)索引和列的数据框。索引是日期,列是数字。我想先定位到值小于某个级别的那一行:

list = []
for index,row in df.iterrows():
    if row < -0.1:
        list.append(#sum the next 60 values)

我觉得这应该很简单,但我无法理解 pandas 的索引和选择数据的文档。

除此之外,如果我再次拥有一个索引(日期)和超过 1 列的值,我将如何进行。每列的总和应该只有 30、60、90 等深度。我想我会在上面添加一个 for 循环:

for i in df.columns:
    #add logic here

编辑:这是数据的样子:

data

Date        Ticker

2015-06-23 -0.010959
2015-06-24 -0.002770
2015-06-25  0.005556
2015-06-26  0.008287
2015-06-29 -0.013699
2015-06-30  0.005556
2015-07-01  0.006077
2015-07-02 -0.010983

最佳答案

尝试通过查找满足条件的所有行的整数索引来构建索引列表,如:

import numpy as np
from pandas import DataFrame

df = DataFrame([["2015-06-23",-0.010959],
["2015-06-24", -0.102770],
["2015-06-25",  0.005556],
["2015-06-26",  0.008287],
["2015-06-29", -0.113699],
["2015-06-30",  0.005556],
["2015-07-01",  0.006077],
["2015-07-02", -0.010983]], columns=['Date','Ticker'])

df.set_index(['Date'])

index_list = list(np.where(df.Ticker < -0.1)[0])

然后遍历这些索引位置以获取您的值:

list = []
for i in index_list:
     list.append(df.loc[i:i+30-1]['Ticker'].sum())

关于python - 在 n 行后在 pandas 中求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862469/

相关文章:

python - 在python调试中计算单词中的字母

python-3.x - 在 Keras 中加载数据集时如何修复错误?

python - 如何将 pandas 数据框行转换为逗号分隔的字符串

python - Pandas 列的条件值

python - 从 pandas 的列表中提取唯一的项目

python - 使用 2 个分类器进行集成学习

python - 如何浏览或搜索 Odoo 中的 One2many 字段?

python - 在现代 Python 中声明自定义异常的正确方法?

python - ZipFile 获取创建日期

python - 下载一个 zip 文件并使用 Python3 将其解压缩到内存中