相关疑难解决方法(0)

如何获得滚动的熊猫数据框子集

我想以“滚动”方式获取数据帧子集。我尝试了几件事但没有成功,这是我想做的一个例子。让我们考虑数据框。

df
     var1      var2
0    43         74
1    44         74
2    45         66
3    46        268
4    47         66
Run Code Online (Sandbox Code Playgroud)

我想使用以下函数创建一个新列,该列执行条件总和:

def func(x):
    tmp = (x["var1"] * (x["var2"] == 74)).sum()
    return tmp
Run Code Online (Sandbox Code Playgroud)

并像这样称呼它

df["newvar"] = df.rolling(2, min_periods=1).apply(func)
Run Code Online (Sandbox Code Playgroud)

这意味着该函数将基于数据框应用,而不是针对每一行或每一列

它会回来

     var1      var2      newvar
0    43         74         43          # 43
1    44         74         87          # 43 * 1 + 44 * 1
2    45         66         44          # 44 * 1 + 45 * 0
3    46        268         0           # 45 * 0 + …
Run Code Online (Sandbox Code Playgroud)

python pandas

9
推荐指数
1
解决办法
5272
查看次数

标签 统计

pandas ×1

python ×1