首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Pandas sum()两个值之间的差异

Python Pandas sum()两个值之间的差异
EN

Stack Overflow用户
提问于 2021-06-24 22:24:39
回答 1查看 44关注 0票数 0

在我的python代码中,使用pandas我必须重采样datetimedata序列并计算列值之间的差值(值之间差值的总和),我编写了这段代码:

代码语言:javascript
复制
import pandas as pd
import datetime
from .models import Results, VarsResults

start_date = datetime.date(2021, 6, 21)
end_date = datetime.date(2021, 6, 24)

def calc_q(start_d, end_d):

    start_d = start_date
    end_d = end_date

    var_results = VarsResults.objects.filter(
        id_res__read_date__range=(start_d, end_d)
    ).select_related(
        "id_res"
    ).values(
        "id_res__read_date",
        "id_res__unit_id",
        "id_res__device_id",
        "id_res__proj_code",
        "var_val",
    )

    df = pd.DataFrame(list(var_results))

    df['id_res__read_date'] = pd.to_datetime(df['id_res__read_date'])
    df = df.set_index('id_res__read_date')

    df_15 = df.resample('15min').sum()

    return df_15

但是我得到了值本身的总和。

示例

代码语言:javascript
复制
... | 5
... | 3
... | 1

我得到的是值之间的差值之和,而不是值之和:

在这种情况下为4 (5-3 =2+ 3-1 = 2,2+2)

pandas中有没有一种方法可以使用重采样来管理这种聚类?

非常感谢你,曼纽尔

EN

回答 1

Stack Overflow用户

发布于 2021-06-24 23:35:29

所有差异的总和等于第一个元素和最后一个元素之间的差异:如果您计算出它,所有其他元素都会被抵消。例如,在你的数据中,3抵消了:

代码语言:javascript
复制
(5-3) + (3-1)
= 5 - 3 + 3 - 1  # - 3 and + 3 cancel out
= 5 - 1

我不知道Pandas是如何工作的,但你可以简单地做等同于first_value - last_value的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68117639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档