小编sna*_*uid的帖子

如何使用前几行的数据在数据框列上应用函数?

我有一个包含三列的数据框:nums有一些要使用的值,b它始终是1or0result当前除第一行之外的任何地方都为零的列(因为我们必须有一个初始值才能使用)。数据框如下所示:

   nums   b    result
0  20.0  1    20.0
1  22.0  0    0
2  30.0  1    0
3  29.1  1    0
4  20.0  0    0
...
Run Code Online (Sandbox Code Playgroud)

问题

我想从第二行开始查看数据框中的每一行,进行一些计算并将结果存储在result列中。由于我正在处理大文件,因此我需要一种方法来快速执行此操作,这就是为什么我想要类似apply.

我想要做的计算是采取值numsresult以前的行,如果在当前行的b山坳是0那么我想(例如)添加numresult从上一行。例如,如果b在该行中,1我想减去它们。

我尝试了什么?

我尝试使用apply但我无法访问前一行,遗憾的是,如果我确实设法访问了前一行,数据框直到最后才会更新结果列。

我也尝试使用这样的循环,但对于我正在使用的大文件来说太慢了:

       for i in range(1, len(df.index)):
            row = df.index[i]
            new_row = df.index[i - 1] …
Run Code Online (Sandbox Code Playgroud)

python vectorization apply dataframe pandas

5
推荐指数
2
解决办法
289
查看次数

标签 统计

apply ×1

dataframe ×1

pandas ×1

python ×1

vectorization ×1