当前位置: 首页 > 知识库问答 >
问题:

使用另一列的值作为“periods”的关键字参数计算diff()

白宏放
2023-03-14

我有一个数据框,我想在其中计算某个列(值)上的diff()。要计算的周期数来自另一列(周期)。

我试过:

df['Diff'] = df['Value'].diff(periods=df['Periods'])

=

在不同的帖子中,我看到我们需要使用. astype(int):

df['Diff'] = df['Value'].diff(periods=df['Periods'].astype(int))

=

我也尝试过。

df['Diff'] = df['Value'].diff(periods=df['Periods'].values)

=

有人知道我在这里遗漏了什么吗?

共有3个答案

樊桐
2023-03-14
df['Diff'] = df.Value - pd.Series(df.Value[df.index - df.Period].values, df.index)
楚方伟
2023-03-14

一种方法可能是以下方法——不是最有效的,但确实有效:

import pandas as pd
import numpy as np

df = pd.DataFrame({"Periods":[0,1,2,2], "Value":[32, 35, 37, 41]})

df["Diff"] = np.diag(df.apply(lambda x:df["Value"].diff(x["Periods"]), axis=1))

df

输出

   Periods  Value  Diff
0        0     32   0.0
1        1     35   3.0
2        2     37   5.0
3        2     41   6.0
孔理
2023-03-14

您可以手动执行此操作<代码>重置索引以确保数据帧具有范围索引。然后从索引中减去句点,以确定需要从哪一行提取“值”,并将其映射到原始数据帧。现在,您可以手动减去以计算差值,其中包含变量“Periods”。

df = df.reset_index(drop=True)

df['Value_shift'] = (df.index - df['Periods']).map(df['Value'])
df['Diff'] = df['Value'] - df['Value_shift']
print(df)
   Periods  Value  Value_shift  Diff
0        0     32           32     0
1        1     35           32     3
2        2     37           32     5
3        2     41           35     6
 类似资料:
  • 问题内容: 我有一个表,其中包含商店中每件商品的单价和其他详细信息。 另一个包含每个订单中包含的项目的详细信息。 现在我要计算 请注意,我希望它成为表本身的一部分,而不是作为其他视图或查询。我怎样才能做到这一点?我为此研究了触发器和其他机制,但是它们是否适用于不同表中的值,尤其是在存在此类约束的情况下? 我尝试过根据另一列计算出的Column进行以下触发吗?: 但这似乎没有用 问题答案: 这是如何

  • 问题内容: 具体来说,我正在尝试使用字符串任意过滤ORM。我已经尝试过exec和eval解决方案,但是我遇到了麻烦。下面的代码不起作用,但这是我知道如何解释我要去的地方的最好方法 问题答案:

  • 问题内容: 所以我试图理解: 在: 在: 如果用作关键字参数,该消失: 在: 是什么原因造成的? 问题答案: 确实与这无关。您实际上是这样调用函数的: Python首先满足位置参数,而您的第一个参数是。然后,应用关键字参数,并 再次 提供。 无法检测到您已经提供了第一个位置参数作为关键字参数。通过用关键字参数替换位置参数,不会增加您的通话次数。 在混合使用位置参数和关键字参数时,必须注意不要重复使

  • 问题内容: 解决以下问题 的最有效方法 是什么?从交互式外壳程序: 目前,我正在解决以下问题: 但是看起来很笨拙… (python 2.7+或3.2+解决方案都可以) 问题答案: 使用关键字参数解包:

  • 我正在使用一个Spring数据JPA(4.3.5)存储库和一个查询方法,该方法在关键字子句中使用<代码>列表 给定如下实体: 使用该SQL声明: Estat是一个枚举类,类似于: 和JPA存储库,如: 当我运行(联调类): 生成的SQL是(在内存H2 DB中): 不会引发任何SQL异常,并且不会返回任何结果。但这应该返回1个结果,因为此(等效)SQL返回: 我能看到的独特区别是我如何在"(该列是V

  • 我希望在一个数据框中估计模型,但是每个模型的公式都有一些来自另一个数据框的“移动部分”。例如,假设我想估计以下模型(我不能发布图片,也没有办法输入乳胶方程):mpg=a+B*log(w_1*drat+w_2*hp) group_by()的输出: